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))
添加回答
舉報