gpt4 book ai didi

python - Python 中的逆字典

转载 作者:行者123 更新时间:2023-11-28 20:11:58 26 4
gpt4 key购买 nike

我正在尝试使用现有字典的值列表作为单独的键来创建新字典。

例如:

dict1 = dict({'a':[1,2,3], 'b':[1,2,3,4], 'c':[1,2]})

我想获得:

dict2 = dict({1:['a','b','c'], 2:['a','b','c'], 3:['a','b'], 4:['b']})

到目前为止,我还不能以非常干净的方式做到这一点。有什么建议吗?

最佳答案

如果您使用的是 Python 2.5 或更高版本,请使用 defaultdict class from the collections 模块;一个defaultdict在第一次访问丢失的键时自动创建值,因此您可以在此处使用它来为 dict2 创建列表,像这样:

from collections import defaultdict
dict1 = dict({'a':[1,2,3], 'b':[1,2,3,4], 'c':[1,2]})
dict2 = defaultdict(list)
for key, values in dict1.items():
for value in values:
# The list for dict2[value] is created automatically
dict2[value].append(key)

请注意,dict2 中的列表不会以任何特定顺序排列,因为字典不会对它们的键值对进行排序。

如果你想在最后输出一个普通的字典,它会引发一个 KeyError对于丢失的 key ,只需使用 dict2 = dict(dict2)在上述之后。

关于python - Python 中的逆字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1410087/

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