0

我有一个包含这样的嵌套列表的列表:

[ [datetime.datetime(2000, 12, 10, 0, 0), 0.0011] , [datetime.datetime(2000, 12, 11, 0, 0), 0.0013 , [datetime.datetime(2000, 12, 12, 0, 0), 0.0014]]

etc..

我该如何去添加子元素 2 by 2 像这样:

总和(0.0011,0.0013)+ 0.0014

然后取这个总和的结果并将其添加到下一个子元素?

我基本上是在尝试复合价值观。

谢谢!

4

2 回答 2

2

最简单的方法是使用内置sum()生成器表达式

>>>items = [[datetime.datetime(2000, 12, 10, 0, 0), 0.0011], [datetime.datetime(2000, 12, 11, 0, 0), 0.0013 ], [datetime.datetime(2000, 12, 12, 0, 0), 0.0014]]
>>>sum(item[1] for item in items)
0.0038000000000000004

编辑:

如果要打印求和的每个阶段的结果,则要使用functools.reduce()(在 2.x 中是builtin reduce

from functools import reduce
import datetime

items = [[datetime.datetime(2000, 12, 10, 0, 0), 0.0011], [datetime.datetime(2000, 12, 11, 0, 0), 0.0013 ], [datetime.datetime(2000, 12, 12, 0, 0), 0.0014]]

def add_printing_result(a, b):
    total = a+b
    print(total)
    return total

reduce(add_printing_result, (item[1] for item in items))

这给了我们:

0.0024000000000000002
0.0038000000000000004
于 2012-04-27T01:07:12.323 回答
0
sum = 0, myarr = [ [datetime.datetime(2000, 12, 10, 0, 0), 0.0011] , [datetime.datetime(2000, 12, 11, 0, 0), 0.0013] , [datetime.datetime(2000, 12, 12, 0, 0), 0.0014]]

for(i in myarr):
    sum+=i[1]

我确信有更好的方法来做到这一点(我不是 Python 专家),但这应该正确地对你的值求和,这sum就是子元素的总和。

于 2012-04-27T00:56:25.663 回答