Q:

¿Cómo sumar vectores representados por tuplas en Python?

Digamos que tengo que sumar 2 vectores de n-dimensiones. ¿Cuál es la forma pytonica de sumarlos directamente?
Por ejemplo en R^3, pero sin estar limitado a R^3,
a = (123.45, 23.45, 1.0)
b = (45.678, 56.78, 5.0)

(Obtener (169.128, 80.23, 6.0))

A:

Si intentas lo obvio, obtienes un generador:
>>> (sum(x) for x in zip(a, b))
<generator object <genexpr> at 0x7faf248e20f8>

Así que puedes convertirlo en tupla directamente:
>>> tuple(sum(x) for x in zip(a, b))
(169.128, 80.23, 6.0)

En todo caso, te recomiendo que en su lugar uses NumPy:
>>> import numpy as np
>>> a = np.array((123.45, 23.45, 1.0))
>>> b = np.array((45.678, 56.78, 5.0))
>>> a + b
array([ 169.128,   80.23 ,    6.   ])

