Хорошо, Я хочу объединить два списка диктаторов, если они имеют одинаковый ключ: значение в нем. Это похоже на объединение в SQL. Мне не разрешено импортировать какие-либо модули для этой проблемы.Объединить два списка словарей с одинаковым ключом: значение в python
Вот пример:
Вход:
>>> series = [
... {'s_id': 'bb', 'title': 'Breaking Bad'},
... {'s_id': 'bcs', 'title': 'Better Call Saul'}]
>>> series_characters = [
... {'c_id': 'ww', 's_id': 'bb'},
... {'c_id': 'sw', 's_id': 'bb'},
... {'c_id': 'sg', 's_id': 'bb'}
... {'c_id': 'sg', 's_id': 'bcs'}
Вывод должен быть список dicts как с infomration внутри него:
out= [
{'s_id': 'bb', 'title': 'Breaking Bad', 'c_id': 'ww'},
{'s_id': 'bcs', 'title': 'Better Call Saul', 'c_id': 'sg'}]
Я пытался Somthing так, но я думаю, что мои мысли сложны и код не работает:
def _join(tbl1, tbl2):
"""
Helping function to merge two tables inform of a list
Argurments:
tbl1 (list): list of dict's containung a table
tbl2 (list): list of dict's containung a table
Returns:
back_lst (list): list, containing wanted rows of the table
"""
back_lst = []
for element1 in tbl1:
for element2 in tbl2:
for key in tbl1[element1]:
if tbl1[element1[key]] == tbl2[element2[key]]:
a = tbl1[element1].copy()
a.update(tbl2[element2])
back_lst.append(a)
return back_lst
Было бы неплохо получить помощь здесь. Заранее спасибо.
в серии_charachter для s_id bb, c_id ww, sw, sg, тогда почему он только слился с sg не другим? – harshil9968
@ harshil9968 хорошая точка, также следует отметить, что, если имеется более одного общего ключа, например. в SQL, где tbl1.name = tbl2.name и tbl1.id = tbl2.id. –