python - 比较两个字典的键并使用与另一个字典中的键不匹配的键、值对创建一个字典 - Python

标签 python python-3.x

我想比较 dict_1dict_2 之间的键,并创建一个仅包含不匹配键及其对应值的 new_dict 。我有两个这样的字典:

dict_1 = {'a':'1', 'b':'1', 'c': None}
dict_2 = {'d': '1', 'a': '2'}

我希望输出类似于:aa 匹配,因此我希望将其排除在 new_dict 中。

new_dict = {'b':'1', 'c': None, 'd': '1'}

我尝试过这个:

new_dict = {}
for key in dict_1.items():
for key2 in dict_2.items():
    if key == key2:

但我不确定如何从这里继续,或者这可能不是正确的方法。请帮忙!

最佳答案

您可以对 dict.keys 的结果执行类似集合的操作:

For set-like views, all of the operations defined for the abstract base class collections.abc.Set are available (for example, ==, <, or ^).

所以你可以做类似的事情

dict_1 = {'a':'1', 'b':'1', 'c': None}
dict_2 = {'d': '1', 'a': '2'}

keys = dict_1.keys() ^ dict_2.keys()

new_dict = {k: dict_1.get(k, dict_2.get(k)) for k in keys}

关于python - 比较两个字典的键并使用与另一个字典中的键不匹配的键、值对创建一个字典 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55527388/

相关文章:

python-3.x - 如何在 Pandas 的数据框中转置值的子集?

python - 跨文件的全局变量和 numpy 行为

python - scikit 总是过度拟合

python - 模块未找到错误 : No module named 'google' on python 3. 6.7

python - 舍入 lambda 函数

python - 基于每日时间序列数据框创建工作日/周末时间序列数据框

python - 无法将所有文件移动到新文件夹

python - 在大型 txt 文件 pandas 中查找标题

Python HMAC-SHA256 签名与 PHP 签名不同

python os.fdopen(os.open()) 不能用来写?