Python 中獲取元組列表中最大值對應的第一個元素


我們有一個元組列表。我們需要找出其中值最大的那個元組。但如果多個元組具有相同的值,我們需要第一個具有最大值的元組。

使用 itemgetter 和 max

使用 itemgetter(1) 獲取索引位置 1 的所有值,然後應用 max 函式獲取具有最大值的項。但如果返回多個結果,則應用索引零以獲取具有最大元素的第一個元組。

示例

 線上演示

from operator import itemgetter
# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using max() and itemgetter()
res = max(listA, key=itemgetter(1))[0]
# printing result
print("Day with maximum score is : \n",res)

輸出

執行以上程式碼得到以下結果:

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue

使用 max 和 lambda

我們使用 lambda 函式獲取索引位置 1 的元素,然後應用 max 函式。然後我們應用索引位置 0 獲取多個匹配項中的第一個以獲得最終結果。

示例

 線上演示

# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using max() and lambda
res = max(listA, key = lambda i : i[1])[0]
# printing result
print("Day with maximum score is : \n",res)

輸出

執行以上程式碼得到以下結果:

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue

使用 sorted

在這種方法中,我們使用 sorted 函式,並在應用 lambda 函式時將 reversed 設定為 true。

示例

 線上演示

# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using sorted() and lambda
res = sorted(listA, key = lambda i: i[1], reverse = True)[0][0]
# printing result
print("Day with maximum score is : \n",res)

輸出

執行以上程式碼得到以下結果:

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue

更新於: 2020年6月4日

937 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告