例如,如果我有矩阵:
x=[['1', '7', 'U1'], ['1.5', '8', 'U1'], ['2', '5.5', 'U2']]
如何从x获取所有数据,除了最后一个。然后我需要总结这些元素。
这就是我需要的:sum=1+7+1.5+8+2+5.5= ??
由于
我试试:
> 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'
答案 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)