2016-11-28 73 views

回答

7

只需使用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的价值的第一要素得到元素的sum1从不间断。

+0

'打印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 :) –

+0

还有没有使用lambda ? –

2

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

2

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 
+0

max_key = a.keys()[0]是否支持索引? –

+0

@CrystalTran max_key用字典中的第一个键初始化。做a.keys()输出一个键列表,这样我就可以像列表一样访问它 –

相关问题