【发布时间】:2016-02-12 17:48:20
【问题描述】:
我是 Python 新手,目前正在解决问题以提高我的编码技能。我遇到了一个问题,我在哪里找到 List 中的最大值,它在另一个 List 中具有相同的 index 最大值的对应值。
例如:
我有两个 Lists 值 L1 = [9, 12, 9 ,6] 和 L2 = [2, 3, 4, 5]
我必须在List L1 中找到最大值,并且应该在List L2 中使用最大值的索引来找到它的对应值。
Max value in List L1 - 12
Index of the max value - 1
print L2[1] -> 3
所以为了实现上面的逻辑,我重新搜索了一个方法,得到了。但我无法理解逻辑是如何工作的。
import operator
index, value = max(enumerate(l1), key=operator.itemgetter(1))
print value,
print l2[index]
输出:12 3
为了了解上述函数的工作原理,我尝试单独打印每个部分,但仍然无法理解逻辑是如何工作的。
print l1 - [9, 12, 9 , 6]
print l2 - [2, 3, 4, 5]
print list(enumerate(l1)) - [<0, 9>, <1, 12>, <2, 9>, <3, 6>]
print list(enumerate(l2)) - [<0, 2>, <1, 3>, <2, 4>, <3, 5>]
print max(enumerate(l1)) - <3, 6>
print max(enumerate(l2)) - <3, 5>
请帮助我了解enumerate 函数和key=operator.itemgetter(1))[0] 在上述逻辑中的工作原理。提前致谢。非常感谢您的帮助。
【问题讨论】:
-
你谷歌了这些片段吗?
enumerate、operator.itemgetter和key?具体有什么不明白的?