这是一个示例字典。
example = {'a': 10, 'b': 12, 'c': 10, 'd': 12}
我想像下面这样打印它们。
12 b, d
10 a, c
这是一个示例字典。
example = {'a': 10, 'b': 12, 'c': 10, 'd': 12}
我想像下面这样打印它们。
12 b, d
10 a, c
有两种方法可以解决这个问题。
高效:collections.defaultdict(list)
构造一个键和值倒置的新字典。重要的是,您可以有重复的值,因此我们使用一个列表来保存这些值。Pythonic 方法是使用collections.defaultdict.
对于非常大的字典,这可能会产生很大的内存开销。
example = {'a': 10, 'b': 12, 'c': 10, 'd': 12}
from collections import defaultdict
d = defaultdict(list)
for k, v in example.items():
d[v].append(k)
for k, v in d.items():
print(k, ' '.join(v))
10 a c
12 b d
手册:列表推导循环
这种方式计算效率低,但需要较少的内存开销:
for value in set(example.values()):
print(value, ' '.join([k for k, v in example.items() if v == value]))
10 a c
12 b d
这是否实现了您的目标?
for i in set(example.values()):
print (i, [list(example.keys())[j] for j in range(len(example)) if list(example.values())[j]==i])