我希望能够将值添加到列表中。例如,我有以下两个列表:
alist = [1,3,5,7,9]
blist = [0]
我想向blist
插入一个值,即alist
的值,并且在alist
中插入所有值。例如,blist
将是以下内容:
blist = [0,1,4,9,25]
由于1是alist
中的第一个值,因此它保持不变,因此我做1 + 3 = 4、1 + 3 + 5 = 9,依此类推。
但是,我对如何实现它感到非常困惑。我有以下代码:
list1 = [1,2,3,4,5]
list2 = [0]
x = 0
while x < len(list1):
blist.append(alist[0])
这会将第0位置的第一个值附加到list2
,并生成list2 = [0,1]
。但是,我不知道如何以我需要的方式添加值。
答案 0 :(得分:8)
itertools
具有一个不错的accumulate函数,可以执行此操作(以及更多操作):
from itertools import accumulate
alist = [1,3,5,7,9]
blist = [0] + list(accumulate(alist))
# blist is now [0, 1, 4, 9, 16, 25]
答案 1 :(得分:3)
这可以通过列表理解来完成
blist = [sum(alist[:i]) for i in range(len(alist) + 1)]
给予
[0, 1, 4, 9, 16, 25]
答案 2 :(得分:2)
只是为了完成而生病,请添加一个小数答案
import numpy as np
alist = [1,3,5,7,9]
blist = [0]
blist = blist + list(np.cumsum(alist))