Reputation:
suppose if two dictionary list are
l1 = [{'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '2nd Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '3rd Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '4th Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '5th Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '6th Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'name': 'Final - TBC v TBC', 'place': 'R Premadasa Stadium, Colombo'}]
l2 = [{'date': 'Tue Mar 6'}, {'date': 'Thu Mar 8'}, {'date': 'Sat Mar 10'}, {'date': 'Mon Mar 12'}, {'date': 'Wed Mar 14'}, {'date': 'Fri Mar 16'}, {'date': 'Sun Mar 18'}]
I want to combine element in l2 to elements of l1 like as follow.
L3 = [{'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo','date': 'Tue Mar 6'}, {'name': '2nd Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo','date': 'Thu Mar 8'}, {'name': '3rd Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo','date': 'Sat Mar 10'}, {'name': '4th Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo','date': 'Mon Mar 12'}, {'name': '5th Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo','date': 'Wed Mar 14'}, {'name': '6th Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo','date': 'Fri Mar 16'}, {'name': 'Final - TBC v TBC', 'place': 'R Premadasa Stadium, Colombo','date': 'Sun Mar 18'}]
which function can I use to do this?
Upvotes: 2
Views: 97
Reputation: 1
Code:
L3 = [dict(a.items() + b.items()) for a,b in zip(L1,L2)]
Upvotes: -1
Reputation: 6088
l1 = [{'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '2nd Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '3rd Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '4th Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '5th Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '6th Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'name': 'Final - TBC v TBC', 'place': 'R Premadasa Stadium, Colombo'}]
l2 = [{'date': 'Tue Mar 6'}, {'date': 'Thu Mar 8'}, {'date': 'Sat Mar 10'}, {'date': 'Mon Mar 12'}, {'date': 'Wed Mar 14'}, {'date': 'Fri Mar 16'}, {'date': 'Sun Mar 18'}]
print(list(zip(l1,l2)))
l3=[]
for i in zip(l1,l2):
d=i[0]
d.update(i[1])
l3.append(d)
print(l3)
i[0] is {'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}
i[1] is {'date': 'Tue Mar 6'}
Output for
print(list(zip(l1,l2)))
[({'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'date': 'Tue Mar 6'}), ({'name': '2nd Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'date': 'Thu Mar 8'}), ({'name': '3rd Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'date': 'Sat Mar 10'}), ({'name': '4th Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'date': 'Mon Mar 12'}), ({'name': '5th Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'date': 'Wed Mar 14'}), ({'name': '6th Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'date': 'Fri Mar 16'}), ({'name': 'Final - TBC v TBC', 'place': 'R Premadasa Stadium, Colombo'}, {'date': 'Sun Mar 18'})]
print(l3)
[{'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Tue Mar 6'}, {'name': '2nd Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Thu Mar 8'}, {'name': '3rd Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Sat Mar 10'}, {'name': '4th Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Mon Mar 12'}, {'name': '5th Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Wed Mar 14'}, {'name': '6th Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Fri Mar 16'}, {'name': 'Final - TBC v TBC', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Sun Mar 18'}]
Upvotes: -1
Reputation: 7846
You can do it this way:
l1 = [{'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '2nd Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '3rd Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '4th Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '5th Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '6th Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'name': 'Final - TBC v TBC', 'place': 'R Premadasa Stadium, Colombo'}]
l2 = [{'date': 'Tue Mar 6'}, {'date': 'Thu Mar 8'}, {'date': 'Sat Mar 10'}, {'date': 'Mon Mar 12'}, {'date': 'Wed Mar 14'}, {'date': 'Fri Mar 16'}, {'date': 'Sun Mar 18'}]
res = [{**d[0],**d[1]} for d in zip(l1,l2)]
print(res)
Output:
[{'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Tue Mar 6'}, {'name': '2nd Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Thu Mar 8'}, {'name': '3rd Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Sat Mar 10'}, {'name': '4th Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Mon Mar 12'}, {'name': '5th Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Wed Mar 14'}, {'name': '6th Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Fri Mar 16'}, {'name': 'Final - TBC v TBC', 'place': 'R Premadasa Stadium, Colombo', 'date': 'Sun Mar 18'}]
You can take a look here to see how to merge dictionaries.
Upvotes: 4
Reputation: 82765
This should help.
l1 = [{'name': '1st Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '2nd Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '3rd Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '4th Match - Sri Lanka v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '5th Match - Bangladesh v India', 'place': 'R Premadasa Stadium, Colombo'}, {'name': '6th Match - Sri Lanka v Bangladesh', 'place': 'R Premadasa Stadium, Colombo'}, {'name': 'Final - TBC v TBC', 'place': 'R Premadasa Stadium, Colombo'}]
l2 = [{'date': 'Tue Mar 6'}, {'date': 'Thu Mar 8'}, {'date': 'Sat Mar 10'}, {'date': 'Mon Mar 12'}, {'date': 'Wed Mar 14'}, {'date': 'Fri Mar 16'}, {'date': 'Sun Mar 18'}]
l3 = []
for i in zip(l1, l2):
val = i[0]
val.update((i[1]))
l3.append(val)
print l3
Output:
[{'date': 'Tue Mar 6', 'place': 'R Premadasa Stadium, Colombo', 'name': '1st Match - Sri Lanka v India'}, {'date': 'Thu Mar 8', 'place': 'R Premadasa Stadium, Colombo', 'name': '2nd Match - Bangladesh v India'}, {'date': 'Sat Mar 10', 'place': 'R Premadasa Stadium, Colombo', 'name': '3rd Match - Sri Lanka v Bangladesh'}, {'date': 'Mon Mar 12', 'place': 'R Premadasa Stadium, Colombo', 'name': '4th Match - Sri Lanka v India'}, {'date': 'Wed Mar 14', 'place': 'R Premadasa Stadium, Colombo', 'name': '5th Match - Bangladesh v India'}, {'date': 'Fri Mar 16', 'place': 'R Premadasa Stadium, Colombo', 'name': '6th Match - Sri Lanka v Bangladesh'}, {'date': 'Sun Mar 18', 'place': 'R Premadasa Stadium, Colombo', 'name': 'Final - TBC v TBC'}]
Upvotes: 2