請不要僅排序values
。將items
按values
排序,然後免費領取鑰匙。
from operator import itemgetter
l = sorted(myHash.items(), key=itemgetter(1), reverse=True)
largestKey, largestNum = l[0]
注意:如果你只是想最大的價值,排序結果的不休息,你可以節省一些工作,並跳過完全sorted
工作(減少工作從O(n log n)
到O(n)
):
largestKey, largestNum = max(myHash.items(), key=itemgetter(1))
用於反相dict
一般情況下,如果值是唯一的,是微不足道的創建一個映射逆轉:
invert_dict = {v: k for k, v in orig_dict.items()}
如果值不是唯一的,你想找到對應於具有單個查找一個值的所有鍵,你會反轉爲多字典:
from collections import defaultdict
invert_dict = defaultdict(set)
for k, v in orig_dict.items():
invert_dict[v].add(k)
# Optionally convert back to regular dict to avoid lookup auto-vivification in the future:
# invert_dict = dict(invert_dict)
另一種方式來獲得'myHash'字典:'{i:j for j,i in enumerate(name)}' –
爲了讓您的問題更清楚:您是否有興趣從最大的價值中專門找到鑰匙?或者你有興趣一般從任意值中找到一個密鑰? –
從最大價值中獲得關鍵解決了我目前的問題。但是,知道從任意值中找出密鑰的一般方法是很好的。 – Sam