我想从两个python字典中构造一个列表,它们有相同的键,但键的值不同

2024-04-27 22:22:24 发布

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

我有字典清单:

a1 = [{'x1': 1, 'x2': 2, 'x3': 3}]
a2 = [{'x1': 2, 'x2': 3, 'x3': 4}]

我需要将两个列表合并成第三个列表,如:

a3 = [{'x1': 3, 'x2': 5, 'x3': 7}]

我在google中发现Python的新版本有collection.Counter的概念,但是我正在研究Python 2.6.4,它不支持collections.Counters。你知道吗


Tags: 版本a2概念列表字典a1googlecounter
3条回答

您可以找到添加到python2.7中的collections.Counterrecepie。 这对于Python2.5+是很重要的,所以您可以使用它。你知道吗

然后简单地说:

a1 = {1:1,2:2,3:3}
a2 = {1:2,2:3,3:4}
from collections import Counter
c1 = Counter(a1)
c2 = Counter(a2)
c1.update(c2)
c1
Counter({3: 7, 2: 5, 1: 3})

您可以对Python dict使用字典理解:

a1 = {'x1':1, 'x2':2, 'x3':3}
a2 = {'x1':2, 'x2':3, 'x3':4}

a3 = {
    key: a1.get(key, 0) + a2.get(key, 0)
    for key in set(a1.keys() + a2.keys())
}

我假设a1, a2是字典(即a1 = {x1:1,x2:2,x3:3}而不是方括号)。你知道吗

假设它们有共同的键,您可以通过字典理解

{key: a1[key]+a2[key] for key in a1}

相关问题 更多 >