我有两个字典列表,想根据条件进行比较并打印列表的值。
dest = [{'pin': 0,
'cpin': 0,
'lst': ['id1_1',
'id1_2',
'id1_3']},
{'pin': 0,
'cpin': 1,
'lst': ['id2_1',
'id2_2',
'id2_3',
'id2_4']}
]
src = [
{'data': ['1001'],
'pin':0
'cpin': 0,
'name':'single_data_a'},
{'data': ['1002',
'1003'],
'pin':0
'cpin': 0,
'name': 'Large_data_1'},
{'data': ['2001',
'2002',
'2003'],
'pin':0
'cpin': 1,
'name': 'Large_data_2'}
}]
输出:要打印数据:比较两个字典列表 如果两个字典都满足条件,则打印这些值。
例如:dest和src中的pin和cpin匹配,然后从dest中打印出第一个值,并打印src中的数据
single_data_a
1001
id1_1
large_data_1
1002
id1_2
large_data_1
1003
id1_3
Large_data_2
2002
id2_1
Large_data_2
2003
id2_2
我尝试过的代码:对于第二个列表,它不是从id2_1开始的
for b, i in enumerate(src):
for c, j in enumerate(dest, b):
get_pin = i.get('pin')
get_cpin= i.get('cpin')
for l in i.get('lst'):
if int(get_pin) == int(j.get('get_pin')) and int(get_cpin) == int(j.get('get_cpin')):
print(l)
print(j.get('lst')[c])
print(i.get('name')
c = c + 1
答案 0 :(得分:1)
您可以尝试这样的事情。
>>> for d in dest:
... for s in src:
... if d['cpin'] == s['pin'] and d['pin'] == s['pin']:
... for data, l in zip(s['data'], d['lst']):
... print(s['name'])
... print(data)
... print(l)
single_data_a
1001
id1_1
Large_data_1
1002
id1_1
Large_data_1
1003
id1_2
Large_data_2
2001
id1_1
Large_data_2
2002
id1_2
Large_data_2
2003
id1_3