Как я могу перебрать два списка диктов, сопоставить клики между списками по ключу и, если есть совпадение, добавить конкретный ключ из каждого дикта в пару значений ключа в новом словаре.Позвольте мне уточнить на примере:
l1 = [{'id': 52, 'email': 'someemail@yahoo.com', 'anotherfield': 'some value'},
.....
{'id': 98, 'email': 'anotheremail@yahoo.com', 'anotherfield': 'another value'}]
l2 = [{'id': 93, 'email': 'someemail@yahoo.com', 'another key': 'seventeen'},
.....
{'id': 101, 'email': 'anotheremail@yahoo.com', 'another key': 'twenty'}]
# match the 'email' keys between each list, and if match, create k, v pair from id's
desired_output = {'52': 93.....'98': 101}
Я могу легко добиться этого, просто перебирая каждый список следующим образом:
lookup = dict()
for l in l1:
for p in l2:
if l['email']==p['email']:
lookup[l['id']]=p['id']
break
Однако это немного неуклюже, и я быпредпочитаю какое-то понимание.Моя попытка:
lookup = {k['id']: v['id'] for k, v in zip(l1, l2) if k['email'] == v['email']}