我有这个元组列表列表var1 = [ [(10, '♣'), (7, '♠')], [(14, '♣'), (2, '♣')], [(2, '♥'), (9, '♦')], [(11, '♠'), (10, '♠')], [(11, '♦'), (5, '♣')]]我想提取具有最大值的元组,这是第二个或var1[1]。我在编程过程中使用了很多不同的代码,但是我现在和现在使用的代码没有任何重大问题是这个: maximo = max(var1, key=lambda x: sum(i for i,_ in x))还有这个: maximo2 = list(map(max,zip(*var1)))问题是我需要具有最大值的列表,而不是具有2个最大组合的列表,现在此代码输出为2个中较大的一个,我不知道还有什么可以尝试的。var1[3]
3 回答

MM们
TA贡献1886条经验 获得超2个赞
使用而不是maxsum
前任:
var1=[[(10, '♣'), (7, '♠')], [(14, '♣'), (2, '♣')], [(2, '♥'), (9, '♦')], [(11, '♠'), (10, '♠')], [(11, '♦'), (5, '♣')]]
maximo=max(var1, key=lambda x: max(i for i,_ in x))
print(maximo)
输出:
[(14, '♣'), (2, '♣')]

守着一只汪
TA贡献1872条经验 获得超3个赞
您也可以在这里使用:maxoperator.itemgetter
>>> from operator import itemgetter
>>> var1=[[(10, '♣'), (7, '♠')], [(14, '♣'), (2, '♣')], [(2, '♥'), (9, '♦')], [(11, '♠'), (10, '♠')], [(11, '♦'), (5, '♣')]]
>>> max(var1, key=itemgetter(0))
[(14, '♣'), (2, '♣')]
添加回答
举报
0/150
提交
取消