Having two lists of dictionaries like

```
big = [{'id': 1234, 'name': 'ipod'}, {'id': 1235, 'name': 'ipod x'}, {'id': 1236, 'name': 'ipod touch'}]

small = [{'id': 1236, 'url': 'directUrl1'}, {'id': 1235, 'url': 'directUrl2'}]

```

I'd like to implement efficient & pythonic way to find intersections between two lists(based on `id`) and create new list of merged dicts:

```
res = [{'id': 1236, 'url': 'directUrl1', 'name': 'ipod touch'}, {'id': 1235, 'url': 'directUrl2', 'name': 'ipod x'}]

```

My current approach:

```
>>> res = []
>>>
>>> for item in [x for x in small if x['id'] in [y['id'] for y in big]]:
...  res.append({**item, **[x for x in big if x['id'] == item['id']][0]})
...
>>> res
[{'id': 1236, 'url': 'directUrl1', 'name': 'ipod touch'}, {'id': 1235, 'url': 'directUrl2', 'name': 'ipod x'}]

```