📜  Python|在列表列表中查找每个索引的最小值

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

Python|在列表列表中查找每个索引的最小值

有时,我们会遇到这样的问题,我们需要找到矩阵中每一列的最小值,即列表列表中每个索引的最小值。这种问题在竞争性编程中非常常见和有用。让我们讨论一些可以解决这个问题的方法。

例子:

Input : [[3, 7, 6], [1, 3, 5], [9, 3, 2]]
Output : [1, 3, 2] 
 
Input : [[3, 2, 8], [5, 3, 5], [9, 3, 1]] 
Output : [3, 2, 1]

方法 #1:使用min() + list comprehension + zip()

需要结合上述方法来解决这个特定问题。 min函数用于获取所需的最小值, zip函数提供类似索引的组合,然后使用列表理解创建列表。

# Python3 code to demonstrate
# Minimum index value
# using min() + list comprehension + zip()
  
# initializing list
test_list = [[3, 7, 6], [1, 3, 5], [9, 3, 2]]
  
# printing original list
print("The original list : " + str(test_list))
  
# using min() + list comprehension + zip()
# Minimum index value
res = [min(idx) for idx in zip(*test_list)]
  
# print result
print("The Minimum of each index list is : " + str(res))
输出 :
The original list : [[3, 7, 6], [1, 3, 5], [9, 3, 2]]
The Minimum of each index list is : [1, 3, 2]

方法 #2:使用map() + min() + zip()

这与上述方法的工作方式几乎相似,但不同之处在于我们使用 map函数来构建最小元素列表,而不是使用列表推导。

# Python3 code to demonstrate
# Minimum index value
# using min() + map() + zip()
  
# initializing list
test_list = [[3, 7, 6], [1, 3, 5], [9, 3, 2]]
  
# printing original list
print("The original list : " + str(test_list))
  
# using min() + map() + zip()
# Minimum index value
res = list(map(min, zip(*test_list)))
  
# print result
print("The Minimum of each index list is : " + str(res))
输出 :
The original list : [[3, 7, 6], [1, 3, 5], [9, 3, 2]]
The Minimum of each index list is : [1, 3, 2]