为了账号安全,请及时绑定邮箱和手机立即绑定

元组列表中的 max (Python)

元组列表中的 max (Python)

隔江千里 2022-09-06 16:56:22
我有这个元组列表列表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, '♣')]


查看完整回答
反对 回复 2022-09-06
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

您可以使用带有参数的内置函数:maxkey

max(var1, key=max)

输出:

[(14, '♣'), (2, '♣')]


查看完整回答
反对 回复 2022-09-06
?
守着一只汪

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, '♣')]


查看完整回答
反对 回复 2022-09-06
  • 3 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号