Question: I have two lists like this,

```
a=[['a', 'b', 'c'], ['b', 'c'], ['a', 'd'], ['x']]
b=[[1, 2, 3], [4,5], [6,7], [8]] (the size of a and b is always same)

```

Now I want to create two list with the sum of unique elements, so the final lists should look like,

```
 a=['a', 'b', 'c', 'd', 'x']
 b=[7, 6, 8, 7, 8] (sum of all a, b, d, d and x)

```

I could do this using for loop but looking for some efficient way to reduce execution time.

Answer: 
Not so pythonic but will do the job:

```
a=[['a', 'b', 'c'], ['b', 'c'], ['a', 'd'], ['x']]
b=[[1, 2, 3], [4,5], [6,7], [8]]

mapn = dict()
for elt1, elt2 in zip(a, b):
    for e1, e2 in zip(elt1, elt2):
        mapn[e1] = mapn.get(e1, 0) + e2

elts = mapn.keys()
counts = mapn.values()

print(mapn)
print(elts)
print(counts)

```
You can combine the lists and their internal lists using zip(), then feed the list of tuples to a dictionary constructor to get a list of dictionaries with values for each letter. Then convert those dictionaries to Counter and add them up.

```
a = [['a', 'b', 'c'], ['b', 'c'], ['a', 'd'], ['x']]
b = [[ 1,   2,   3 ], [ 4,   5 ], [ 6,   7 ], [ 8 ]]

from collections import Counter
from itertools import starmap

mapn        = sum(map(Counter,map(dict,starmap(zip,zip(a,b)))),Counter())
elts,counts = map(list,zip(*mapn.items()))

print(mapn)   # Counter({'c': 8, 'x': 8, 'a': 7, 'd': 7, 'b': 6})    
print(elts)   # ['a', 'b', 'c', 'd', 'x']    
print(counts) # [ 7,   6,   8,   7,   8]

```

detailed explanation:

* `zip(a,b)` combines the lists into pairs of sublists. e.g. (['a','b','c'],[1,2,3]), ...
* `starmap(zip,...)` takes these list pairs and merges then together into sublist of letter-number pairs: [('a',1),('b',2),('c',3)], ...
* Each of these lists of pairs is converted to a dictionary by `map(dict,...)` and then into a Counter object by `map(counter,...)`
* We end up with a list of Counter objects corresponding to the pairing of each sublist. Applying sum(...,Counter()) computes the totals for each letter into a single Counter object.
* Apart from being a Counter object, mapn is excatly the same as the dictionary that you produced.