如何从字典和键中检索多个最大值

2024-04-23 06:22:48 发布

您现在位置:Python中文网/ 问答频道 /正文

如何检索字典及其对应键的最大值?你知道吗

my_dict = {1: 4, 2: 5, 3: 2, 4: 5, 5: 3}
maxValue = []
maximum = 0

for key, value in my_dict.items():
     if value >= maximum:
        maxValue.append(value)


number = max(maxValue)

print(number)

我只能得到最大值,结果是5,这是预期的,但我似乎也检索不到最大值对应的键。在这种情况下,对应的键应该是2和4。你知道吗


Tags: keyinnumberforif字典valuemy
3条回答

您可以使用operator.itemgetter来实现:

import operator
my_dict = {1: 4, 2: 5, 3: 2, 4: 5, 5: 3}

key_max =  max(my_dict.items(), key=operator.itemgetter(1))[0]
key_min =  min(my_dict.items(), key=operator.itemgetter(1))[0]
print key_max, key_min

输出

2 3

您可以构建由my_dict中的值索引的键列表的dict,以便将max值映射到对应的键列表:

d = {}
for k, v in my_dict.items():
    d.setdefault(v, []).append(k)
print(d[max(d)])

这将输出:

[2, 4]

你可以试试这个

my_dict = {1: 4, 2: 5, 3: 2, 4: 5, 5: 3}

max_number=max(my_dict.values())

d=dict((key,value) for key, value in my_dict.items() if value == max_number)

print(d)

这将输出为:

{2: 5, 4: 5}

如果你只想找回钥匙那么你可以-

l=list(key for key, value in my_dict.items() if value == max_number)
print(l)

这将给出-

[2, 4]

希望这有帮助!你知道吗

相关问题 更多 >