如何获取字典中的多个最大键值?
比方说,我有一本字典:如何获取字典中的多个最大键值?
data = {'a':1, 'b':2, 'c': 3, 'd': 3}
我想在字典中的最大值(一个或多个)。到目前为止,我一直在做:
max(zip(data.values(), data.keys()))[1]
但我知道我可能会错过另一个最大值。什么是最有效的方法来解决这个问题?
回答:
您也可以尝试这样的事:
from collections import defaultdict data = {'a':1, 'b':2, 'c': 3, 'd': 3}
d = defaultdict(list)
for key, value in data.items():
d[value].append(key)
print(max(d.values()))
,输出:
['c', 'd']
回答:
根据您的示例,您似乎在寻找映射到最大值的关键字。你可以使用列表理解:如果你有一个大字典
[k for k, v in data.items() if v == max(data.values())] # ['c', 'd']
,打破这一成两行,以避免计算最大的尽可能多的项目,你有:
mx = max(data.values()) [k for k, v in data.items() if v == mx]
在Python 2。 x您需要.iteritems()
。
回答:
首先,找出字典中出现的最大值。如果你想创建所有的最大值(一个或多个)的列表,然后再尝试这样的事:
data = {'a':1, 'b':2, 'c': 3, 'd': 3} max_value = data.get(max(data))
list_num_max_value = []
for letter in data:
if data.get(letter) == max_value:
list_num_max_value.append(max_value)
print (list_num_max_value)
请让我知道这是不是你正在尝试做的,我会引导你通过正确的过程。
以上是 如何获取字典中的多个最大键值? 的全部内容, 来源链接: utcz.com/qa/260680.html