📜  Python – 在两个元组列表中查找相似索引的最大值

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

Python – 在两个元组列表中查找相似索引的最大值

有时,在处理Python记录时,我们可能会遇到需要执行元组列表的交叉最大化的问题。这种应用程序在Web开发领域很流行。让我们讨论可以执行此任务的某些方式。

方法 #1:使用列表理解 + zip()
上述功能的组合可用于执行此特定任务。在此,我们使用列表推导遍历列表,并在 zip() 的帮助下执行列表之间的最大化。

# Python3 code to demonstrate working of
# Maximum of Tuple List Similar Indices
# using list comprehension + zip()
  
# initialize lists
test_list1 = [(2, 4), (6, 7), (5, 1)]
test_list2 = [(5, 4), (8, 10), (8, 14)]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# Maximum of Tuple List Similar Indices
# using list comprehension + zip()
res = [(max(x[0], y[0]), max(x[1], y[1])) 
       for x, y in zip(test_list1, test_list2)]
  
# printing result
print("The Maximum across lists is : " + str(res))
输出 :
The original list 1 : [(2, 4), (6, 7), (5, 1)]
The original list 2 : [(5, 4), (8, 10), (8, 14)]
The Maximum across lists is : [(5, 4), (8, 10), (8, 14)]

方法 #2:使用max() + zip() + map()
这是执行此任务的另一种方式。这与上面的方法类似,不同之处在于最大化是由内置函数执行的,而将逻辑扩展到每个元素是由 map() 完成的。

# Python3 code to demonstrate working of
# Maximum of Tuple List Similar Indices
# using max() + zip() + map()
  
# initialize lists
test_list1 = [(2, 4), (6, 7), (5, 1)]
test_list2 = [(5, 4), (8, 10), (8, 14)]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# Maximum of Tuple List Similar Indices
# using max() + zip() + map()
res = [tuple(map(max, zip(a, b))) 
       for a, b in zip(test_list1, test_list2)]
  
# printing result
print("The Maximum across lists is : " + str(res))
输出 :
The original list 1 : [(2, 4), (6, 7), (5, 1)]
The original list 2 : [(5, 4), (8, 10), (8, 14)]
The Maximum across lists is : [(5, 4), (8, 10), (8, 14)]