Python:如何将两个同键字典的列表值合并为单个列表
合并字典并拼接对应键的列表值
嘿,我懂你的困扰——你现在的代码把两个列表嵌套成了二维列表,但你想要的是把它们无缝拼接成一个一维列表对吧?
问题出在你用了[d1[key], d2[key]],这其实是创建了一个包含两个子列表的新列表,而不是把两个列表的元素合并到一起。要实现拼接,直接用Python列表的+运算符就可以了,它会把两个列表的元素依次合并成一个新列表。
一行代码解决方案:
d_comb = {key: d1[key] + d2[key] for key in d1}
运行这段代码后,你就能得到期望的输出:
{'a': [2, 4, 5, 6, 8, 10, 12, 15], 'b': [1, 2, 5, 6, 9, 12, 14, 16], 'c': [0, 4, 5, 8, 10, 21, 23, 35]}
额外优化(可选):
如果担心两个字典的键不完全一致(比如d2有d1没有的键),你可以遍历两个字典的所有键集合,同时用dict.get()处理键不存在的情况,避免抛出KeyError:
d_comb = {key: d1.get(key, []) + d2.get(key, []) for key in d1.keys() | d2.keys()}
内容的提问来源于stack exchange,提问作者Ric S
相关产品推荐
相关产品推荐

