2024-09-30 02:26:31 发布
网友
我在互联网上到处寻找,问这样一个问题:如何才能在字典中找到所有具有相同值的键。但这个值还不知道。最近出现的是this,但是值是已知的
假设我有一本这样的字典,这些值是完全随机的,不是我硬编码的
{'AGAA': 2, 'ATAA': 5,'AJAA':2}
如何识别具有相同值的所有键?最有效的方法是什么
['AGAA','AJAA']
您可以尝试以下方法:
from collections import Counter d = {'AGAA': 2, 'ATAA': 5,'AJAA':2} l = Counter(d.values()) l = [x for x,y in l.items() if y > 1] out = [x for x,y in d.items() if y in l] # Out[21]: ['AGAA', 'AJAA']
我要做的就是把字典翻过来。我的意思是对每个公共值的键进行分组。因此,如果您从以下内容开始:
{'AGAA': 2, 'ATAA': 5, 'AJAA': 2}
您可能希望将其分组,以便键现在是值,值现在是键:
{2: ['AGAA', 'AJAA'], 5: ['ATAA']}
对值进行分组后,可以使用max确定最大分组
max
例如:
from collections import defaultdict data = {'AGAA': 2, 'ATAA': 5, 'AJAA': 2} grouped = defaultdict(list) for key in data: grouped[data[key]].append(key) max_group = max(grouped.values(), key=len) print(max_group)
产出:
['AGAA', 'AJAA']
您还可以找到max键并按以下方式打印:
max_key = max(grouped, key=lambda k: len(grouped[k])) print(grouped[max_key])
您可以尝试以下方法:
我要做的就是把字典翻过来。我的意思是对每个公共值的键进行分组。因此,如果您从以下内容开始:
您可能希望将其分组,以便键现在是值,值现在是键:
对值进行分组后,可以使用
max
确定最大分组例如:
产出:
您还可以找到max键并按以下方式打印:
相关问题 更多 >
编程相关推荐