19
Próbuję uzyskać klucz Dict, gdzie jego wartość jest maksymalna we wszystkich wartościach dyktowanych. Znalazłem dwa sposoby, oba nie wystarczająco eleganckie.Pobierz klucz dict o wartości maksymalnej
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]
Czy istnieje lepsze podejście?
Co zrobić, jeśli istnieje wiele kluczy? Czy mogę przekazać, powiedzmy, "len", aby uzyskać najdłuższy klucz o największej wartości? – SiddharthaRT
@SiddharthaRT: możesz użyć 'lambda' dla klucza:' max (d, klucz = lamda k: (d [k], len (k))) 'zwróci klucz o najwyższej wartości, a jeśli nie jest więcej niż jednym kluczem, będzie to najdłuższy klucz z tych, które są zwracane. –