Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在两个不同的字典中添加与同一键关联的值_Python_Dictionary - Fatal编程技术网

Python 在两个不同的字典中添加与同一键关联的值

Python 在两个不同的字典中添加与同一键关联的值,python,dictionary,Python,Dictionary,我已经看了这里的几个问题,但没有一个是我的问题。假设我有两本字典,它们是dict1 {'A': 25 , 'B': 41, 'C': 32} 和dict2 {'D':21, 'A': 12, 'B':62} 我正在编写一个程序,需要在其中添加与同一个键相关的值。所以像这样: {'A': [25 + 12], 'B': [41 + 62], 'C': [32], 'D': [21]} x = {'a': 1, 'b': 1, 'c': 1} # dictionary

我已经看了这里的几个问题,但没有一个是我的问题。假设我有两本字典,它们是
dict1

{'A': 25 , 'B': 41, 'C': 32}
dict2

{'D':21, 'A': 12, 'B':62}
我正在编写一个程序,需要在其中添加与同一个键相关的值。所以像这样:

{'A': [25 + 12], 'B': [41 + 62], 'C': [32], 'D': [21]}
x = {'a': 1, 'b': 1, 'c': 1}              # dictionary x
y = {'c': 1, 'd': 1, 'e': 1}              # dictionary y
z = dict([
    (key, x.get(key, 0) + y.get(key, 0))  # key, sum(x,y)
    for key in                            # for every key in
    set(x.keys() + y.keys())              # the unique set of keys from x + y
])

我假设你正在努力保存dict_1作为结果

for key in dict_1:
    if key in dict_2:
        dict_1[key] = dict_1[key] + dict_2[key]
需要复制存在于2中但不存在于1中的键值对

for key in dict_2:
    if key not in dict_1:
        dict_1[key] = dict_2[key]

这可能是实现这一点的最简单方法,我假设您正在努力保存dict_1作为结果

for key in dict_1:
    if key in dict_2:
        dict_1[key] = dict_1[key] + dict_2[key]
>>> dict1= {'A':25,'B':41,'C':32}
>>> dict2= {'D':21, 'A':12, 'B':62}
>>> for e in dict2:
        if e in dict1:
            dict1[e]=dict1[e]+dict2[e]
        else:
            dict1[e]=dict2[e]
需要复制存在于2中但不存在于1中的键值对

for key in dict_2:
    if key not in dict_1:
        dict_1[key] = dict_2[key]
这可能是最简单的方法

>>> dict1= {'A':25,'B':41,'C':32}
>>> dict2= {'D':21, 'A':12, 'B':62}
>>> for e in dict2:
        if e in dict1:
            dict1[e]=dict1[e]+dict2[e]
        else:
            dict1[e]=dict2[e]
现在你的口述变成了你想要的答案。希望有帮助。:)


现在你的口述变成了你想要的答案。希望有帮助。:)

我认为解决方案中缺少的是使用字典附带的
-方法和
获取
-方法。
keys
-方法将返回字典中键值对中所有键的列表。然而,
get
-方法将返回与字典中某个键相关联的值(如果有),或者返回默认值(默认为
None

要想做你想做的事,我推荐如下:

{'A': [25 + 12], 'B': [41 + 62], 'C': [32], 'D': [21]}
x = {'a': 1, 'b': 1, 'c': 1}              # dictionary x
y = {'c': 1, 'd': 1, 'e': 1}              # dictionary y
z = dict([
    (key, x.get(key, 0) + y.get(key, 0))  # key, sum(x,y)
    for key in                            # for every key in
    set(x.keys() + y.keys())              # the unique set of keys from x + y
])

步骤#1:
set(x.keys()+y.keys())
-将两个键列表添加到一起并删除重复项(通过将其设置为一个集合)

第2步:
用于输入键
-从第1步开始在集合中的每个键上循环

第三步:
x.get(key,0)+y.get(key,0)
-对每个字典中与该键相关的值求和;如果没有关联的值,则使用0作为默认值

步骤4:
(key,…)
-使用新的和和和原始键创建一个键、值对

第五步:
dict([…])
-从键值对列表中创建一个新字典



这有意义吗?我希望这有帮助

我认为解决方案中缺少的是使用字典附带的
-方法和
获取
-方法。
keys
-方法将返回字典中键值对中所有键的列表。然而,
get
-方法将返回与字典中某个键相关联的值(如果有),或者返回默认值(默认为
None

要想做你想做的事,我推荐如下:

{'A': [25 + 12], 'B': [41 + 62], 'C': [32], 'D': [21]}
x = {'a': 1, 'b': 1, 'c': 1}              # dictionary x
y = {'c': 1, 'd': 1, 'e': 1}              # dictionary y
z = dict([
    (key, x.get(key, 0) + y.get(key, 0))  # key, sum(x,y)
    for key in                            # for every key in
    set(x.keys() + y.keys())              # the unique set of keys from x + y
])

步骤#1:
set(x.keys()+y.keys())
-将两个键列表添加到一起并删除重复项(通过将其设置为一个集合)

第2步:
用于输入键
-从第1步开始在集合中的每个键上循环

第三步:
x.get(key,0)+y.get(key,0)
-对每个字典中与该键相关的值求和;如果没有关联的值,则使用0作为默认值

步骤4:
(key,…)
-使用新的和和和原始键创建一个键、值对

第五步:
dict([…])
-从键值对列表中创建一个新字典



这有意义吗?我希望这有帮助

你的问题是什么?只需在其中一个dict的键上循环,并添加两个dict的相应元素。你的问题是什么?只需在其中一个dict的键上循环,并添加两个dict的相应元素。