Question: I have two lists:
`a=[1,2,3]`, `b=[a,b,c]`

I want for each `zip` of those two to call a function, but not to do it in a trivial way inside a for loop. Is there a pythonic way? I tried with a `map`:

`map(func(i,v) for i,v in zip(a,b))`

but it does not work

Answer: 
The pythonic way *is* the for loop:

```
for i, v in zip(a, b):
    func(i, v)

```

Clear, concise, readable. What's not to like?
A list comprehension is almost always faster or equivalent to `map`. If you append the results of the comprehension to a list (as in the example), then a comprehension is also faster than a `for loop`:

```
a = [1, 2, 3]
b = ['a', 'b', 'c']
c = []

def foo(x, y):
    global c
    result = x * y
    c.append(result)
    return result

>>> c
[]

>>> [foo(x, y) for x, y in zip(a, b)]
['a', 'bb', 'ccc']

>>> c
['a', 'bb', 'ccc']

```