📜  Python - 从元组列表中获取最大第 N 列

📅  最后修改于: 2022-05-13 01:55:22.406000             🧑  作者: Mango

Python - 从元组列表中获取最大第 N 列

有时,在使用Python列表时,我们可能有一个任务,我们需要使用元组列表并获得它的第 N 个索引的最大值。在处理数据信息时,此问题在 Web 开发领域有应用。让我们讨论可以执行此任务的某些方式。

方法 #1:使用列表理解 + max()
可以使用上述功能的组合来执行此任务。在这种情况下,使用 max() 发生索引的最大值,列表理解驱动列表中每个元组的第 N 个索引元素的迭代和访问。

# Python3 code to demonstrate working of
# Nth column Maximum in tuple list
# using list comprehension + max()
  
# initialize list
test_list = [(5, 6, 7), (1, 3, 5), (8, 9, 19)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initialize N
N = 2
  
# Nth column Maximum in tuple list
# using list comprehension + max()
res = max([sub[N] for sub in test_list])
  
# printing result
print("Maximum of Nth Column of Tuple List : " + str(res))
输出 :
The original list is : [(5, 6, 7), (1, 3, 5), (8, 9, 19)]
Maximum of Nth Column of Tuple List : 19

方法#2:使用imap() + max() + itemgetter()
以上功能的组合也可以完成这个任务。这种方法是基于生成器的,建议在我们有一个非常大的列表的情况下使用。其中,max() 用于执行最大值,itemgetter 获取第 N 个索引,imap() 执行映射元素以提取最大值的任务。仅适用于 Python2。

# Python code to demonstrate working of
# Nth column Maximum in tuple list
# using imap() + max() + itemgetter()
from operator import itemgetter
from itertools import imap
  
# initialize list
test_list = [(5, 6, 7), (1, 3, 5), (8, 9, 19)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initialize N
N = 2
  
# Nth column Maximum in tuple list
# using imap() + max() + itemgetter()
idx = itemgetter(N)
res = max(imap(idx, test_list))
  
# printing result
print("Maximum of Nth Column of Tuple List : " + str(res))
输出 :
The original list is : [(5, 6, 7), (1, 3, 5), (8, 9, 19)]
Maximum of Nth Column of Tuple List : 19