我想通過這樣的元組的列表進行迭代:從座標元組的列表中選擇最小值
[(0, 0.0083553666846612491), (1, 0.0054999681509501821)]
並找到元組的右手側的最小值,然後保存隨附左手邊的值給一個變量。
這個問題最好的解決方法是什麼?
我想通過這樣的元組的列表進行迭代:從座標元組的列表中選擇最小值
[(0, 0.0083553666846612491), (1, 0.0054999681509501821)]
並找到元組的右手側的最小值,然後保存隨附左手邊的值給一個變量。
這個問題最好的解決方法是什麼?
可以使用key
參數來min()
功能找到具有最小第二值的元組:
>>> l = [(0, 0.0083553666846612491), (1, 0.0054999681509501821)]
>>> smallest = min(l, key=lambda x: x[1])[0]
>>> smallest
1
這裏lambda表達式用來選擇每個元組的第二個項目,並min
使用該值在其比較中。 min()
返回完整元組,因此您可以使用[0]
提取第一個項目。
您還可以使用operator.itemgetter
:
>>> from operator import itemgetter
>>> smallest = min(l, key=itemgetter(1))[0]
>>> smallest
1
這應該工作:
min_tuple = min(your_list, key=lambda item: item[1])
所以我們提供的元組特點比較方法
你就像只遲到3分鐘。通常情況下,我會upvote這兩個答案,但[mhawke](http://stackoverflow.com/a/40456054/1218980)提供了更多的細節,而你沒有提供。非常鼓勵您提供您所提議的解決方案的描述,而不僅僅是單線程。 –
我正在使用手機應用程序,每個字母都是數字(誰喜歡在手機上寫散文)。感謝您的建議。 – woockashek
是的,在手機上寫答案遠不是最好的。 –