gpt4 book ai didi

python - 如何比较两个不同列表中字典的键和值并打印不匹配的键和值

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

我有两个列表,我的目标是将 list_two 与 list_one 进行比较并打印差异

list_one = [{'name': 'xyz', 'age': 25},
{'name': 'pqr', 'age': 50},
{'name': 'abc', 'age': 30}]
list_two = [{'name': 'xyz', 'age': 25, 'hair_color': 'brown'},
{'name': 'pqr', 'age': 30, 'hair_color': 'black'},
{'name': 'lmn', 'age': 30, 'hair_color': 'black'}]

预期输出:

{'Output': [{'name': 'xyz', 'age': 25, 'Status': 'Match'},
{'name': 'pqr', 'age': 30, 'Status': 'age mismatch', 'Expected_age':'50'},
{'name': 'lmn', 'age': 30, 'Status': 'total mismatch'}]}

我尝试使用下面的代码来获得预期输出,但没有得到它::

listOne = list_one
listTwo = list_two
listKey = []
listValues = []
for x in listOne:
listKey.append(x['name'])
listValues.append(x['age'])
output_comp={}
output_comp['Output']=[]
for i in listTwo:
if i['name'] in listKey:
if i['age'] in listValues:
output_comp['Output'].append({'name': i['name'],
'age': i['age'],
'Status': 'Match'})
else:
output_comp['Output'].append({'name': i['name'],
'age':i['age'],
'Status':'age mismatch',
'Expected_age': x['age']})
else:output_comp['Output'].append({'name': i['name'],
'age': i['age'],
'Status': 'total mismatch'})

最佳答案

嗨,我做了一个简单的循环,有点像你想要的,但因为我现在必须去某个地方,所以我无法完成它。所以它得到不匹配的字典,并告诉你它出了什么问题,我只是没有实现它的“匹配”部分,但你可以使用它并弄清楚如何做到这一点,我也没有测试过它对于多个“错误”值

这是代码

list_one = [{'name': 'xyz', 'age': 25},
{'name': 'pqr', 'age': 50},
{'name': 'abc', 'age': 30}]
list_two = [{'name': 'xyz', 'age': 25, 'hair_color': 'brown'},
{'name': 'pqr', 'age': 30, 'hair_color': 'black'},
{'name': 'lmn', 'age': 30, 'hair_color': 'black'}]

wrongList = []
line = 0

for value in list_one:
value = value.items()
checkvalue = list_two[line]
line += 1

for k,v in value:
if(v != checkvalue[k]):
checkvalue["Mismatch"] = k
checkvalue["Expected"] = v
wrongList.append(checkvalue)

print(wrongList)

输出:[{'name': 'pqr', 'age': 30, 'hair_color': 'black', 'Mismatch': 'age', 'Expected': 50}, {'name ': 'lmn', '年龄': 30, 'hair_color': '黑色', '不匹配': '姓名', '预期': 'abc'}]

关于python - 如何比较两个不同列表中字典的键和值并打印不匹配的键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59306031/

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