请告诉我一些我不明白的事情
test1 = [{'DataTime': '03.02.2023', 'id': '112233', 'idd': '0000123'},
{'DataTime': '03.02.2023', 'id': '112234', 'idd': '0000124'},
{'DataTime': '03.02.2023', 'id': '112235', 'idd': '0000125'},
{'DataTime': '03.02.2023', 'id': '112236', 'idd': '0000126'}
]
test2 = [
{'Data': ['03.02.2023'], 'id': ['112233'], 'idd': ['333444']},
{'Data': ['03.02.2023'], 'id': ['112255'], 'idd': ['555535']},
{'Data': ['03.02.2023'], 'id': ['112288'], 'idd': ['223455']}
]
for a in test1:
for b in test2:
if b['id'][0] == a['id']:
print(a)
如果B ['id'][0] == a ['id']时执行:打印匹配的内容{'DataTime':“2023年2月3日”,“身份证”:“112233”、“识别号”:“0000123”}
我不明白为什么当我这样做如果B ['id'][0]!= a ['id']一切都显示,很多时候,为什么它不显示什么是不存在的?例如:
{'DataTime': '03.02.2023', 'id': '112234', 'idd': '0000124'},
{'DataTime': '03.02.2023', 'id': '112235', 'idd': '0000125'},
{'DataTime': '03.02.2023', 'id': '112236', 'idd': '0000126'}
谢谢
告诉我,很可能可以进行不同的比较。为什么不适用于if b ['id'][0]!= a ['id']:?那么,怎样才能有所不同?
2条答案
按热度按时间zyfwsgd61#
您使用的是嵌套的for循环,因此
if
比较将针对两个列表中每个项的每个组合执行一次。第一个列表有四个项目,第二个列表有三个项目,因此有4x3 = 12个组合。
只有一个ID匹配的组合:两个列表中的第一项。因此,如果打印 matches,则
a
将打印一次。但是有11个id不匹配的组合,所以如果你打印不匹配的组合,那么
a
将被打印11次。67up9zun2#