2012-12-30 12 views
19

값이 어디에있는 dict 키를 얻으려고하는지 모든 dict 값에서 최대입니다. 두 가지 방법, 둘 다 충분히 우아하지 않습니다.최대 값으로 dict 키 가져 오기

d= {'a':2,'b':5,'c':3} 
# 1st way 
print [k for k in d.keys() if d[k] == max(d.values())][0] 
# 2nd way 
print Counter(d).most_common(1)[0][0] 

더 좋은 방법이 있습니까?

답변

57

사용 key 매개 변수 max()에 :

max(d, key=d.get) 

데모 :

>>> d= {'a':2,'b':5,'c':3} 
>>> max(d, key=d.get) 
'b' 

key 매개 변수 기능을 소요하고 반복 가능한의 각 항목에 대해, 그것은을위한 하나를 찾을 수 있습니다 key 함수는 가장 높은 값을 반환합니다.

+0

키가 여러 개인 경우 어떻게해야합니까? 가장 가치가있는 가장 긴 키를 얻기 위해 'len'을 전달할 수 있습니까? – SiddharthaRT

+0

@SiddharthaRT : 'max (d, key = lamda k : (d [k], len (k)))'는 키에 대해'람다 '를 사용할 수 있습니다. 그러한 키가 둘 이상이면 반환되는 키 중 가장 긴 키가됩니다. –

관련 문제