如何在一个字典中比较列表中一个元组中的整数与另一个列表中另一个元组中的整数?

2024-05-17 09:03:30 发布

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

例如,我有:

>>>a = {'dog': [('cute', 10, 20)], 'cat': [('nice', 12, 11)], 'fish':[('hate', 1, 3)]}

期望返回'dog',因为索引1和索引2处的整数之和是30,这大于cat和fish的整数之和。你知道吗

如果我不使用导入,有没有简单的方法?你知道吗


Tags: 方法cute整数catnicedogfishhate
3条回答

只需将max与自定义键一起使用即可。你知道吗

>>> a = {'dog': [('cute', 10, 20)], 'cat': [('nice', 12, 11)], 'fish':[('hate', 1, 3)]}
>>> max(a, key=lambda x: sum(a[x][0][1:]))
'dog'

每个x都是字典中的一个键,因此我们得到了sum元素1x值的第一个元素a。你知道吗

print max(a.items(), key=lambda (key, val): sum(val[0][1:]))[0] # dog

蒂格霍克搞定了,我的解决方案如果有人想要一个传统的非Pythonsoln-

a = {'dog': [('cute', 10, 20)], 'cat': [('nice', 12, 11)], 'fish':[('hate', 1, 3)]}

max_key = a.keys()[0]
max_sum=0
for key in a.keys():
    cur_sum = sum(a[key][0][1:])
    if cur_sum>max_sum:
        max_sum = cur_sum
        max_key = key

print max_key

相关问题 更多 >