How can I add the corresponding elements of several lists of numbers?
python
Solution
Try this functional style code:
>>> map(sum, zip(*lists))
[6, 9, 12, 15, 18]
The `zip` function matches elements with the same index.
>>> zip(*lists)
[(1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7)]
Then `sum` is applied to each tuple by using `map`.
See it working online: ideone
Note that in Python 3.x, `map` no longer returns a list. If you need the list, please see the following question:
- Getting a map() to return a list in Python 3.x
(You can just call `list`).
Problem
I have some lists of numbers: ``` [1, 2, 3, 4, 5] [2, 3, 4, 5, 6] [3, 4, 5, 6, 7] ``` How can I add these lists' elements, assuming that all of the lists that I'm using are the same length? Here's the kind of output I'd like to get from doing this to the above lists. ``` [6, 9, 12, 15, 18] ``` I know that I'll need a loop of some kind - but how can I do it elegantly?