Johan Kotlinski - 3 months ago 13

Python Question

I often do vector addition of Python lists.

Example: I have two lists like these:

`a = [0.0, 1.0, 2.0]`

b = [3.0, 4.0, 5.0]

I now want to add b to a to get the result

`a = [3.0, 5.0, 7.0]`

Usually I end up doing like this:

`a[0] += b[0]`

a[1] += b[1]

a[2] += b[2]

Is there some efficient, standard way to do this with less typing?

UPDATE: It can be assumed that the lists are of length 3 and contain floats.

Answer

I don't think you will find a faster solution than the 3 sums proposed in the question. The advantages of numpy are visible with larger vectors, and also if you need other operators. numpy is specially useful with matrixes, witch are trick to do with python lists.

Still, yet another way to do it :D

```
In [1]: a = [1,2,3]
In [2]: b = [2,3,4]
In [3]: map(sum, zip(a,b))
Out[3]: [3, 5, 7]
```

**Edit**: you can also use the izip from itertools, a generator version of zip

```
In [5]: from itertools import izip
In [6]: map(sum, izip(a,b))
Out[6]: [3, 5, 7]
```

Source (Stackoverflow)

Comments