Question: I'm asking to put a list of strings into a dictionary, such that the indices of the characters are the keys and the values are the combined characters.  

I'm trying to get this as terse as I can. 

My code:

```
a = ['apple','pear']
b = map(lambda x:dict(enumerate(x)),a)
print b

```

Output:

```
[{0: 'a', 1: 'p', 2: 'p', 3: 'l', 4: 'e'}, {0: 'p', 1: 'e', 2: 'a', 3: 'r'}]

```

Desired output:

```
{0:'ap',1:'pe',2:'pa',3:'lr',4:'e'}

```

Answer: 
you want zip

```
dict(enumerate(zip(*a)))

```

or maybe izip\_longest

```
dict(enumerate(itertools.izip_longest(*a,fillvalue="")))

```

if you really need to you can join the letters easy enough

```
{k:"".join(v) for k,v in result.items()}

```
similar solution

```
{i: x+y for i, (x,y) in enumerate(zip_longest(*a,fillvalue=''))}

{0: 'ap', 1: 'pe', 2: 'pa', 3: 'lr', 4: 'e'}

```