19
Tôi đang cố gắng lấy khóa dict trong đó giá trị của nó là giá trị tối đa trong tất cả giá trị của dict. Tôi tìm thấy hai cách, cả hai đều không đủ thanh lịch.Lấy khóa dict bằng giá trị tối đa
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]
Có cách tiếp cận nào tốt hơn không?
Điều gì xảy ra nếu có nhiều khóa? Tôi có thể vượt qua, nói, 'len' để có được chìa khóa dài nhất với giá trị nhất? – SiddharthaRT
@SiddharthaRT: bạn có thể sử dụng 'lambda' cho khóa:' max (d, khóa = lamda k: (d [k], len (k))) 'sẽ trả về khóa có giá trị cao nhất và nếu có là nhiều hơn một khóa như vậy, nó sẽ là chìa khóa dài nhất của những người được trả về. –