矩阵问题Python

时间:2011-04-25 17:50:32

标签: python sum

例如,如果我有矩阵:

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

如何从x获取所有数据,除了最后一个。然后我需要总结这些元素。


这就是我需要的:sum=1+7+1.5+8+2+5.5= ??

由于



EDIT2:


我试试:

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

但收到错误:

  

追踪(最近的呼叫最后):
  文件“xxx.py”,第3行,in       sum(sum(el [: - 1])for el in x)文件“xxx.py”,第3行,in       sum(sum(el [: - 1])for el in x)TypeError:不支持的操作数类型   for +:'int'和'str'

1 个答案:

答案 0 :(得分:9)

您可以使用[:-1]将最后一个元素与所有元素区分开来。

要获得这笔款项,请尝试sum(sum(float(el) for el in els[:-1]) for els in x)

如果列表中确实有字符串,则可能需要强制转换元素。此外,如果总有3个元素,这可能会更快一些:

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