【发布时间】:2010-05-12 22:48:35
【问题描述】:
我有一个包含近 100,000 个(键、值)对的字典,并且大多数键映射到相同的值。例如:
mydict = {'a': 1, 'c': 2, 'b': 1, 'e': 2, 'd': 3, 'h': 1, 'j': 3}
我想要做的是反转字典,以便mydict 中的每个值都将成为reverse_dict 的一个键,并将映射到过去的所有mydict.keys() 的列表映射到mydict 中的那个值。所以根据上面的例子,我会得到:
reversed_dict = {1: ['a', 'b', 'h'], 2: ['c', 'e'] , 3: ['d', 'j']}
我想出了一个非常昂贵的解决方案,我想听听比这更有效的方法:
reversed_dict = {}
for value in mydict.values():
reversed_dict[value] = []
for key in mydict.keys():
if mydict[key] == value:
if key not in reversed_dict[value]:
reversed_dict[value].append(key)
【问题讨论】:
标签: python dictionary