Python 中元組列表的最大元素


當需要在元組列表(即元組列表)中找到最大元素時,可以使用 'max' 方法和 'operator.itemgetter()' 方法。itemgetter 從其運算元中獲取特定項。

'max()' 方法給出傳遞給它的可迭代物件中存在最大值。以下是一些在元組列表中查詢最大元素的常用方法。

  • 'itemgetter()' 函式:用於從可迭代物件(如列表、元組或字典)中檢索專案。

  • 'max()' + 'zip()' 函式:使用 map() 函式將元素連結到 zip 函式以提取最大值。

  • 使用 for 迴圈 +'min()' + 'max()':使用 for 迴圈遍歷元組列表並存儲最大元組。

  • 使用 enumerate 函式:此方法涉及使用 for 迴圈迭代,並且我們同時獲得索引值和元素。

使用 'itemgetter()' 函式

此函式允許您指定要從可迭代物件(如列表、元組或字典)中檢索專案的專案的索引或鍵。

使用 'itemgetter()' 而不是傳統的索引或鍵值查詢,因為它可用於根據多個鍵對複雜資料結構進行排序。

示例

我們需要從 operator 模組匯入 itemgetter() 函式。在下面的示例中,我們使用帶 itemgetter() 的 max 函式根據第二個元素(值)查詢具有最高值的元組。

from operator import itemgetter
my_list = [('Will', 23), ('Jane', 21), ('El', 24), ('Min', 101)]

print ("The list is : ")
print(my_list)

my_result = max(my_list, key = itemgetter(1))[0]

print ("The name that has the maximum value is : ")
print(my_result)

輸出

The list is :
[('Will', 23), ('Jane', 21), ('El', 24), ('Min', 101)]
The name that has the maximum value is :
Min

使用 'max()' 和 'zip()'

map() 函式連結到 zip() 函式,這些函式收集元素以執行 max() 函式的功能。在下面的示例中,zip(*test_list) 轉置元組列表,有效地將所有第一個元素和所有第二個元素組合在一起。

test_list = [(2, 3), (4, 7), (8, 11), (3, 6)]
 
# printing original list
print ("The original list is : " + str(test_list))
 
# using map() + zip()
res1 = list(map(max, zip(*test_list)))

# printing result 
print ("Maximum Value : " + str(res1))

輸出

The original list is : [(2, 3), (4, 7), (8, 11), (3, 6)]
Maximum Value : [8, 11]

使用 for 迴圈和 'min()' 和 'max()' 方法。

使用 for 迴圈遍歷元組列表,將第一個和第二個位置儲存在兩個 列表 中,並將最大值儲存在兩個 元組 中。以下示例迭代 test_list 中的每個元組,將第一個元素附加到 x,將第二個元素附加到 y。

test_list = [(2, 3), (4, 7), (8, 11), (3, 6)]
 
# printing original list
print ("The original list is : " + str(test_list))
 
# using min() and max()
# to get min and max in list of tuples
x=[]
y=[]
for i in test_list:
    x.append(i[0])
    y.append(i[1])
res1=(max(x),max(y))

# printing result
print ("Max value: " + str(res1))

輸出

The original list is : [(2, 3), (4, 7), (8, 11), (3, 6)]
Max value: (8, 11)

使用 enumerate 函式

enumerate() 函式返回給定可迭代物件的列舉物件,這使我們能夠使用 for 迴圈進行迭代。使用它,我們同時獲得索引值和元素。此函式提供了一種在迭代列表中的專案時跟蹤索引的方法,而無需手動管理索引。我們可以使用 enumerate 函式找到元素的最大值。

示例

以下是使用 enumerate() 函式在元組列表中查詢最大元素的示例 -

tup_list = [(2, 74), (6, 7), (95, 1), (6, 10), (18, 7)] 
print("Original List:",tup_list)
max_list = [j for a,i in enumerate(tup_list) for j in i ]
print("Maximum Number :",max(max_list))

輸出

以下是上述程式碼的輸出 -

Original List: [(2, 74), (6, 7), (95, 1), (6, 10), (18, 7)]
Maximum Number : 95

更新於: 2024年10月9日

2K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告