在嵌套列表中添加元素

时间:2012-04-27 00:53:43

标签: python

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

[ [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个子元素:

总和(0.0011,0.0013)+ 0.0014

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

我基本上试图复合这些值。

谢谢!

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用the sum() builtingenerator expression

>>>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是the reduce builtin)。

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

答案 1 :(得分: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是子元素的总和。