Честно не понимаю одной вещи - почему для работы с табличными данными программисты на Python предпочитают словари? Есть же отличный контейнер подобного типа - pandas.DataFrame.
import pandas as pd
l1 = [
{'id': 1,'count': 5},
{'id': 2,'count': 8},
{'id': 3,'count': 11}
]
l2 = [
{'id': 1,'name': 'Alex'},
{'id': 2,'name': 'Jack'},
{'id': 3,'name': 'Peter'}
]
l1_df = pd.DataFrame(l1)
l2_df = pd.DataFrame(l2)
res = pd.merge(l1_df,l2_df,left_on='id',right_on='id')
res.set_index('id',inplace=True)
print(res)
В результате получим:
count name
id
1 5 Alex
2 8 Jack
3 11 Peter