Python 如何检查字典键中的相同值,然后返回具有这些相同值的键?

Python 如何检查字典键中的相同值,然后返回具有这些相同值的键?,python,Python,我需要检查字典中值相同的键,然后返回值相同的键 我的代码如下: count = {} x = "Helllo Worldddd5!" for s in x.lower(): if s == ' ' or s.isdigit() or s in '!@#$%^&*()></?:"': continue elif s in count.keys(): count[s] += 1 else: count[s]

我需要检查字典中值相同的键,然后返回值相同的键

我的代码如下:

count = {}
x = "Helllo Worldddd5!"

for s in x.lower():
    if s == ' ' or s.isdigit() or s in '!@#$%^&*()></?:"':
        continue
    elif s in count.keys():
        count[s] += 1
    else:
        count[s] = 1
正如你所看到的,“d”和“l”有相同的值。我希望遍历键/值对并返回具有相同值的键。在这种情况下,我想返回“h”和“l”。

您可以创建一组唯一的计数值。然后检查哪些键在dict理解中具有这些值

count = {'e': 1, 'd': 4, 'o': 2, 'h': 1, 'w': 1, 'l': 4, 'r': 1}
s = set(count.values())
d = {j : [i for i in count if count[i] == j] for j in s}

>>> d
{1: ['e', 'h', 'r', 'w'],
 2: ['o'],
 4: ['d', 'l']}
您可以使用和

正如您所看到的,“h”和“l”具有相同的值。我不明白。H的值是1,L的值是4。它们在我看来并不完全相同。s in count比使用count.keys要好,正如kevin所评论的那样,h和l在集合中似乎没有任何共同之处。计数器[ele.lower for ele in x if ele.isalpha]很可能会执行代码试图执行的操作
count = {'e': 1, 'd': 4, 'o': 2, 'h': 1, 'w': 1, 'l': 4, 'r': 1}
s = set(count.values())
d = {j : [i for i in count if count[i] == j] for j in s}

>>> d
{1: ['e', 'h', 'r', 'w'],
 2: ['o'],
 4: ['d', 'l']}
from collections import Counter
from itertools import groupby

counts = Counter([ele.lower() for ele in x if ele.isalpha()]).most_common()
print [list(val[0] for val in list(v))for k, v in groupby(counts, key=lambda t: t[1])]

[['d', 'l'], ['o'], ['e', 'h', 'r', 'w']]