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]