我有一个列表,看起来像这样:
('string ', 'time', 'SPY', 0, 0, 131.63, 100),
('sting ', 'time', 'SPY', 0, 0, 131.63, 700)
Run Code Online (Sandbox Code Playgroud)
我想要做的是添加最后一列数据
我要做的是解压缩列表,然后在最后一列中总结日期的绝对值,但我不能让它正常工作
我一直在尝试的是这个:
testsum = sum(abs(zip(*list[:-1]))
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑:好的,谢谢你的回复
sum(l[-1]) for l in list
Run Code Online (Sandbox Code Playgroud)
运作良好,但我忘了提到我让它在for循环中运行,我真正想做的是添加所有输出的总和我真的很困惑,我不确定该怎么做我虽然我可以这样做事情又一次,但它没有奏效
生成器表达式是你的朋友:
sum(l[-1] for l in list)
Run Code Online (Sandbox Code Playgroud)
(虽然我希望你的列表不是字面上称为'列表',因为这会影响内置).
对于后续内容,它确实取决于"添加所有输出的总和"的确切含义.这可能意味着有一些列表,比如你发布的那些你正在迭代的列表,并且你想要将所有的总和加在一起.这将是:
sum(sum(l[-1] for l in list) for list in lists)
Run Code Online (Sandbox Code Playgroud)
甚至只是
sum(l[-1] for l in list for list in lists)
Run Code Online (Sandbox Code Playgroud)
如果你的意思是你想要一个累积总和 - 所以,你希望每个阶段的运行总数作为另一个内部总和添加到它 - 看看前面关于累积总和的问题,或者只是写出循环:
cumsum = 0
for list in lists:
cumsum += sum(l[1] for l in list)
print(cumsum)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2215 次 |
| 最近记录: |