元组列表中的 max (Python)

我有这个元组列表列表


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]


隔江千里
浏览 129回答 3
3回答

MM们

使用而不是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, '♣')]

饮歌长啸

您可以使用带有参数的内置函数:maxkeymax(var1, key=max)输出:[(14, '♣'), (2, '♣')]

守着一只汪

您也可以在这里使用:maxoperator.itemgetter>>> from operator import itemgetter>>> var1=[[(10, '♣'), (7, '♠')], [(14, '♣'), (2, '♣')], [(2, '♥'), (9, '♦')], [(11, '♠'), (10, '♠')], [(11, '♦'), (5, '♣')]]>>> max(var1, key=itemgetter(0))[(14, '♣'), (2, '♣')]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python