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