thaking
thaking

Reputation: 3635

Matrix problem Python

For example if I have matrix:

x=[['1', '7', 'U1'], ['1.5', '8', 'U1'], ['2', '5.5', 'U2']]

How can I take all data from x, except the last one. Then I need to sum this elements.


This is what I need: sum=1+7+1.5+8+2+5.5= ??

Thanks



EDIT2:


I try:

> x=[['1', '7', 'U1'], ['1.5', '8',
> 'U1'], ['2', '5.5', 'U2']]
> 
> sum(sum(el[:-1]) for el in x)

But received error:

Traceback (most recent call last):
File "xxx.py", line 3, in sum(sum(el[:-1]) for el in x) File "xxx.py", line 3, in sum(sum(el[:-1]) for el in x) TypeError: unsupported operand type(s) for +: 'int' and 'str'

Upvotes: 2

Views: 1683

Answers (1)

viraptor
viraptor

Reputation: 34145

You can take all elements apart from the last one indexing with [:-1].

To take that sum, try sum(sum(float(el) for el in els[:-1]) for els in x).

If you actually have strings in the list, you might need to cast the elements. Also, if there are always 3 elements, this could be a bit faster:

sum(float(a) + float(b) for a,b,_ in x) 

Upvotes: 9

Related Questions