xiao 啸 - 10 months ago 51

Python Question

I have two lists, one is named as A, another is named as B. Each element in A is a triple, and each element in B is just an number. I would like to calculate the result defined as :

result = A[0][0] * B[0] + A[1][0] * B[1] + ... + A[n-1][0] * B[n-1]

I know the logic is easy but how to write in pythonic way?

Thanks!

Answer

```
import numpy
result = numpy.dot( numpy.array(A)[:,0], B)
```

http://docs.scipy.org/doc/numpy/reference/

If you want to do it without numpy, try

```
sum( [a[i][0]*b[i] for i in range(len(b))] )
```

Source (Stackoverflow)