如何在列表中添加值?

时间:2019-04-08 22:23:39

标签: python

我希望能够将值添加到列表中。例如,我有以下两个列表:

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]。但是,我不知道如何以我需要的方式添加值。

3 个答案:

答案 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))