gpt4 book ai didi

python - 如何反转具有重复值的字典

转载 作者:太空狗 更新时间:2023-10-29 21:27:36 27 4
gpt4 key购买 nike

我有一个包含近 100,000 个(键,值)对的字典,并且大多数键映射到相同的值。例如:

mydict =  {'a': 1, 'c': 2, 'b': 1, 'e': 2, 'd': 3, 'h': 1, 'j': 3}

我想做的是反转字典,使 mydict 中的每个值都将成为 reverse_dict 中的键,并将映射到用于映射到 mydict 中该值的所有 mydict.keys() 的列表。所以根据上面的例子我会得到:

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)

最佳答案

使用 collections.defaultdict :

from collections import defaultdict

reversed_dict = defaultdict(list)
for key, value in mydict.items():
reversed_dict[value].append(key)

关于python - 如何反转具有重复值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823315/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com