逆マップを作成します。
from collections import defaultdict
reverse_data_map = defaultdict(list)
for k, v in data.items():
reverse_data_map[v].append(k) # it becomes a list of keys that share a value
次に、最も高い値を取得し、それを使用してキーを取得します。
max_keys = reverse_data_map[max(reverse_data_map.keys())]
print max_keys # ['C', 'D']
堅牢な機能として
:
from collections import defaultdict
def get_all_max_keys(d):
reverse_map = defaultdict(list)
max_v = 0
for k, v in d.items():
max_v = max(max_v, v) # more efficient method than finding the max afterwards
reverse_map[v].append(k)
return reverse_map[max_v]
関数を呼び出す:
data={
'A': 1, 'T': 1, 'C': 3, 'H': 1,
'I': 1, 'B': 1, 'O': 1, 'J': 2,
'Q': 1, 'S': 1, 'D': 3, 'N': 2,
}
print get_all_max_keys(data) # ['C', 'D']
あなたは古いものをご提示ください、これが重複していると述べた場合。 Thx –