3 回答
TA贡献1786条经验 获得超11个赞
只需像这样使用 min() :
>>> adjoining = [[3,2],[1,1],[1,0]]
>>> min(adjoining)
[1, 0]
TA贡献1798条经验 获得超3个赞
adjoining.sort(key= lambda x:x[0])
mins = [i for i in adjoining if i[0] == adjoining[0][0]]
if len(mins)>1:
mins.sort(key= lambda x:x[1])
min = [i for i in mins if i[1] == mins[0][1]]
else:
min = mins
answer = min[0]
我用sort的key属性。这允许您定义对列表进行排序所依据的标准。其余代码基于列表理解。
[ item for item in a list_of_items if item == wanted_item]
此过滤器list_of_item基于某些选定的标准。只需要确保if可以评估以下内容True或False.
TA贡献2011条经验 获得超2个赞
你可以这样做:
minimum = min(adjoining, key=lambda elem: (elem[0], elem[1]))
结果:
[1, 0]
使用该key参数定义将影响排序过程的字段。首先,您将获得基于x值的最小元素,如果有很多元素,它们将根据它们的y值再次排序。
另一种方法是使用模块中的itemgetter函数operator:
import operator
adjoining = [[1, 0], [3, 2], [1, 1]]
minimum = min(adjoining, key=operator.itemgetter(0,1))
添加回答
举报