gpt4 book ai didi

python - 比较字典中的键和值,并将不匹配的值输出到列表中

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:37 25 4
gpt4 key购买 nike

我需要比较如下两个词典:

dic1 = {
'a': ['a1', 'a2'],
'b': ['b1', 'b2'],
'c': ['c1', 'c2']
}
dic2 = {
'a': ['a1', 'a3'],
'b': ['b1', 'b2', 'b3', 'b4']
}

输出应仅显示 dic2 中但不在 dic1 中的项目,如下所示:

output = {
'a': 'a3',
'b': ['b3','b4']
}

nomatch = {
'c': ['c1','c2']
}

我是 Python 新手,所以我一直在努力让它工作。

key_d1 = dic1.keys()
key_d2 = dic2.keys()
value_d1 = dic1.values()
value_d2 = dic2.values()

output = {}
nomatch = {}

for i, j in zip(key_d1, value_d1):
if i in key_d2:
if j not in value_d2:
output = ??
else:
nomatch[i] = j

最佳答案

您可以简单地通过字典理解来完成此操作。

dict1 = {
'a': ['a1', 'a2'],
'b': ['b1', 'b2'],
'c': ['c1', 'c2']
}
dict2 = {
'a': ['a1', 'a3'],
'b': ['b1', 'b2', 'b3', 'b4'],
'd': ['d1', 'd2']
}

d = { key : [element for element in elements if element not in dict1.get(key, [])]
for key, elements in dict2.items()
}
print(d)

但是,我怀疑您在问题中犯了错误。

show only items that in dict2 but not in dict1

看起来像这样:

{
'a': ['a3'],
'b': ['b3', 'b4'],
'd': ['d1', 'd2']
}

这不是您提供的示例输出。

关于python - 比较字典中的键和值,并将不匹配的值输出到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42710922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com