指lis中的元组

2024-05-03 22:39:34 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我现在的密码

scores = [0,2,0,1,0]
enumeratedScores = list(enumerate(scores))
print(enumeratedScores) # outputs [(0,0), (1,2), (2,0), (3,1), (4,0)]

从那里,我试图根据元组的第二个值,拉出列表中最大的元组。也就是说,在本例中,我希望它返回tuple(1,2),但是在我的实现中,它返回tuple(4,0)。我对元组比较陌生。我将使用什么代码来实现这一点?你知道吗


Tags: 代码密码列表outputslist元组printtuple
3条回答

可以将^{}函数的命名key参数与operator.itemgetter一起使用:

>>> import operator
>>> enumeratedScores = [(0,0), (1,2), (2,0), (3,1), (4,0)]
>>> max(enumeratedScores, key = operator.itemgetter(1))
(1, 2)

如果需要,可以对enumeratedScores进行排序,然后去掉第一个元素:

sorted(enumeratedScores, key=lambda tup: (tup[1], tup[0]), reverse=True)[0]

可以使用max函数和key属性。你知道吗

>>> l = [(0,0), (1,2), (2,0), (3,1), (4,0)]
>>> max(l, key=lambda x: x[1])
(1, 2)

相关问题 更多 >