Как объединить в список два вложенных в список словаря?
у меня есть два списка словарей, которые я хочу объеденить на манер SQL запроса
transactions = [
{'dt': '2020-03-23', 'id': 'alyx', 'price': 1.0},
{'dt': '1725-28-01', 'id': 'superpetr', 'price': 99.9},
{'dt': '2019-11-23', 'id': 'alyx', 'price': 2.0},
{'dt': '2013-12-02', 'id': 'morty', 'price': 13.5},
]
users = [
{'id': 'superpetr', 'name': 'Пётр Первый', 'gender': 'male', 'age': 52},
{'id': 'alyx', 'name': 'Аликс Вэнс', 'gender': 'female', 'age': 22},
]
# Напишите код на python, который реализует следующий запрос SQL:
# SELECT t.dt, u.name, t.price
# FROM
# transactions AS t
# LEFT JOIN
# users AS u USING(id)
Я пробовал несколько алгоритмов, но не один не дал результат. Извините, я плохо разбираюсь в словарях, тем более в словарях в списках. Из последнего я пробовал метод defaultdict, но меня получилось не Left Joint. Да и на собеседовании, говорили что можно через функцию все реализовать.
from collections import defaultdict
d = defaultdict(dict)
for l in (t, u):
for elem in l:
d[elem['id']].update(elem)
l3 = d.values()
for i in l3:
print(i['dt'],i['name'],i['price'])
ну и конечно если значение отсутствует будет ошибка
Источник: Stack Overflow на русском