【发布时间】:2023-03-26 01:51:02
【问题描述】:
我想比较两个具有如下值列表的字典:
dict1 = {'111': [], '333': ['a@a.com'], '444': ['b@b.com', 'c@c.com'], '555': ['d@d.com']}
dict2 = {'111': ['e@e.com'], '333': ['f@f.com' ], '444': ['b@b.com', 'g@g.com'], '555': ['d@d.com']}
并创建满足以下条件的结果字典(result_dict):
- dict1 中不存在特定键的 dict2 值添加到 result_dict
- 如果 dict1 和 dict2 的值相同,则不需要在 result_dict 中添加该键(例如应该跳过 555)
生成的 dict 应如下所示:
dict3 = {'1111': ['e@e.com'], '333': ['f@f.com'], '444': ['g@g.com']}
我有以下代码
result_dict = {}
for k,v in dict2.items():
for k1,v1 in dict1.items():
if k == k1 and v != v1:
result_dict[k] = v
print(result_dict)
哪些输出:
{'111': ['e@e.com'], '333': ['f@f.com'], '444': ['b@b.com', 'g@g.com']}
在上述情况下,它不应该为 444 添加'b@b.com'。如果为 eg 更改订单,它也会给出不正确的结果
'444': ['b@b.com', 'c@c.com']
'444': ['c@c.com', 'b@b.com']
对 dict 值进行排序将无济于事,因为在某些情况下,dict1 的值比 dict2 的值更多。我正在使用 Python 3.7。任何帮助将不胜感激
【问题讨论】:
标签: python python-3.x