这是我目前的代码
scores = [0,2,0,1,0]
enumeratedScores = list(enumerate(scores))
print(enumeratedScores) # outputs [(0,0), (1,2), (2,0), (3,1), (4,0)]
从那里开始,我试图根据元组的第二个值拉出该列表中最大的元组。在这种情况下,我希望它返回元组(1,2)
,但是在我的实现中,它返回元组(4,0)
。我是元组的新手。我会用什么代码来实现这个目标?
答案 0 :(得分:2)
您可以将max
函数的命名key
参数与operator.itemgetter一起使用:
>>> import operator
>>> enumeratedScores = [(0,0), (1,2), (2,0), (3,1), (4,0)]
>>> max(enumeratedScores, key = operator.itemgetter(1))
(1, 2)
答案 1 :(得分:1)
您可以将max
功能与key
属性一起使用。
>>> l = [(0,0), (1,2), (2,0), (3,1), (4,0)]
>>> max(l, key=lambda x: x[1])
(1, 2)
答案 2 :(得分:1)
如果需要,您可以对enumeratedScores
进行排序,然后摘下第一个元素:
sorted(enumeratedScores, key=lambda tup: (tup[1], tup[0]), reverse=True)[0]