python中按键值组合字典

2024-04-26 12:59:17 发布

您现在位置:Python中文网/ 问答频道 /正文

假设在python中有一个键值对,如下所示。在

a = {'44': [0, 0, 1, 0, 1], '43': [0, 0, 1, 0, 0]}

现在我想将这些值与:

^{pr2}$

如何用python完成下面的输出?在

c = {'44': [0, 0, 1, 0, 1, 'test1], '43': [0, 0, 1, 0, 0,'test2']}

Tags: 键值test1test2pr2
3条回答

您可以使用这样的字典理解(从Python 2.7+开始):

c = {k: a[k] + b[k] for k in a}

这假设ab中都存在相同的密钥。 如果不是这样的话,如果有必要的话,可以绕过这个问题。在

您可以将^{}与字典理解一起使用,在一行代码中实现这一点,如下所示:

c = {k: v for k, v in zip(a.keys(), (v1 + v2 for v1, v2 in zip(a.values(), b.values())))}

输出:

^{pr2}$

其他答案是基于这样一个假设:所有涉及的词典都有相同的键。如果您不确定是这样,我建议您使用^{}

from collections import defaultdict

result = defaultdict(list)

for d in (a,b):
    for key, value in d.items():
        result[key].append(value)

此外,此解决方案适用于任何数量的词典。只需将所有要合并的字典添加到元组(a,b)。在

相关问题 更多 >