我有一个包含嵌套列表的列表:
[ [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然后获取此总和的结果并将其添加到下一个子元素?
我基本上试图复合这些值。
谢谢!
答案 0 :(得分:2)
最简单的方法是使用the sum()
builtin和generator 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
是子元素的总和。