Python:按键的相同值合并字典

20

我刚开始学习Python并查看了其他合并字典的答案,但仍有些困惑。我想要通过特定键中的公共值将两个字典合并在一起,以输出具有该公共键以及来自两个字典的其他键的新字典。

这是示例数据:

add_sal = {'career_medicine': None, 'career_law': None, 'median_salary': None, 'mean_salary': 75000.0, 'career_business': 'operations / logistics', 'number': None}

add_perc = {'percent': 0.07, 'career_business': 'operations / logistics'}
我想根据'career_business':'operations / logistics'这个键值对进行合并,并输出一个类似于以下格式的字典:
add_all = {'career_medicine': None, 'career_law': None, 'median_salary': None, 'mean_salary': 75000.0, 'career_business': 'operations / logistics', 'number': None, 'percent': 0.07}

另一个问题是我不知道名称是否匹配,我正在循环遍历add_sal列表和add_perc列表。

欢迎提供任何建议!提前感谢您!


1
如果键在两个中都存在,那么你希望发生什么? - Lasse V. Karlsen
1
无论如何,在Stack Overflow上已经有很多人问过这个问题。我建议您浏览现有的问题,找到符合您标准的那一个。 - Lasse V. Karlsen
1
我已经创建了两个字典,除了“career_business”变量之外,它们没有重叠。 - RCN
2
我看过那个,但我无法确定它们是否查看了键的值。也就是说,它将它们合并在一起,但只查看键的存在性。我需要键的值相同,否则不希望它们被合并。 - RCN
1个回答

9
你所要求的只是简单易行的事情:

你所提出的问题很容易解决:

import copy
if 'career_business' in add_sal and 'career_business' in add_perc and \
      add_sal['career_business'] == add_perc['career_business']:
   add_all = copy.deepcopy( add_sal )
   add_all['percent'] = add_perc['percent']
然而,你的数据结构似乎对于你所拥有的数据类型来说相当奇怪。虽然你没有说明你试图解决什么问题,但是你选择一个看起来随机的东西的字典似乎可能是问题的根源。也许你需要更像按职业名称为键的字典,如下所示:

career_sal[ 'operations / logistics' ] = 75000.0

并为其他部分提供相应的内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接