gpt4 book ai didi

python - 合并 python 中的两个字典,列表作为值

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:18 24 4
gpt4 key购买 nike

我有两个字典,它们的值都是列表。
我想合并它们,保留列表中的唯一项。
我所知道的是:

d1 = {'a':['aa','bb']}
d2 = {'a':['aa','cc'],'b':['xx','yy']}
d1.update(d2)
print d1
>>> {'a': ['aa', 'cc'], 'b': ['xx', 'yy']}

虽然我想得到

>>> {'a': ['aa', 'bb', 'cc'], 'b': ['xx', 'yy']}

实现此目标的最有效方法是什么?

最佳答案

使用集合而不是列表:

{k: set(d1.get(k, [])) | set(d2.get(k, [])) for k in d1.viewkeys() | d2}

对于您的样本输入,这会产生:

>>> d1 = {'a':['aa','bb']}
>>> d2 = {'a':['aa','cc'],'b':['xx','yy']}
>>> {k: set(d1.get(k, [])) | set(d2.get(k, [])) for k in d1.viewkeys() | d2}
{'a': set(['aa', 'cc', 'bb']), 'b': set(['yy', 'xx'])}

如果您将输入字典更改为对值也使用集合,这会更容易。

如果您必须有列表并且顺序无关紧要,请将集合转换回列表:

{k: list(set(d1.get(k, [])) | set(d2.get(k, []))) for k in d1.viewkeys() | d2}

关于python - 合并 python 中的两个字典,列表作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32141506/

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