例如,我有:如何将列表中的元组中的整数与另一个列表中的另一个元组中的另一个整数进行比较?
>>>a = {'dog': [('cute', 10, 20)], 'cat': [('nice', 12, 11)], 'fish':[('hate', 1, 3)]}
希望返回'dog'
因为整数的索引1和2的总和是30,这比猫和鱼整数的总和。
如果我不使用导入,有没有简单的方法来做到这一点?
例如,我有:如何将列表中的元组中的整数与另一个列表中的另一个元组中的另一个整数进行比较?
>>>a = {'dog': [('cute', 10, 20)], 'cat': [('nice', 12, 11)], 'fish':[('hate', 1, 3)]}
希望返回'dog'
因为整数的索引1和2的总和是30,这比猫和鱼整数的总和。
如果我不使用导入,有没有简单的方法来做到这一点?
只需使用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
在字典中的一个关键,所以我们在这a
关键x
的价值的第一要素得到元素的sum
1
从不间断。
print max(a.items(), key=lambda (key, val): sum(val[0][1:]))[0] # dog
Tigerhawk钉它,如果有人想要一个传统的非Python的SOLN我的解决方案 -
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
max_key = a.keys()[0]是否支持索引? –
@CrystalTran max_key用字典中的第一个键初始化。做a.keys()输出一个键列表,这样我就可以像列表一样访问它 –
'打印timeit.timeit( “”“A = { '狗':[( ('nice',12,11)],'fish':[('hate',1,3)]} max_key = a.keys('如果cur_sum> max_sum:[0] max_sum = 0 for a.keys()中的键值: cur_sum = sum(a [key]max_sum = cur_sum max_key =键 “” “数= 10000 上的平均和 '打印timeit.timeit( )''得到0.0300233601695' ”“” A = { '狗':[('可爱',10,20)],'cat':[('nice',12,11)],'fish':[('hate',1,3)] max(a,key = lambda x: sum(a [x] [0] [1:]))“”“,number = 10000 )''给出了'0.0265969282814'这使得这更好更pythonic :) –
还有没有使用lambda ? –