In this tutorial, we are going to write a program that adds all the values with the same keys different lists. Let's see an example to understand it clearly.
Input
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]Output
[('a', 6), ('b', 5), ('c', 12)]Follow the given steps to solve the problem.
- Initialize the lists.
- Convert the first list into dictionary using dict and store it in a variable.
- Iterate over the second list and add the corresponding value to the key present in the dictionary.
- Print the result.
Example
# initializing the lists
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]
# convering list_one to dict
result = dict(list_one)
# iterating over the second list
for tup in list_two:
# checking for the key in dict
if tup[0] in result:
result[tup[0]] = result.get(tup[0]) + tup[1]
# printing the result as list of tuples
print(list(result.items()))Output
If you run the above code, then you will get the following result.
[('a', 6), ('b', 5), ('c', 12)]We can solve the above problem without iterating over any list using Counter from collections. Let's see it.
Example
# importing the Counter
from collections import Counter
# initializing the lists
list_one = [('a', 2), ('b', 3), ('c', 5)]
list_two = [('c', 7), ('a', 4), ('b', 2)]
# getting the result
result = Counter(dict(list_one)) + Counter(dict())
# printing the result as list of tuples
print(list(result.items()))Output
If you run the above code, then you will get the following result.
[('a', 6), ('b', 5), ('c', 12)]Conclusion
If you have any doubts regarding the tutorial, mention them in the comment section.