Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在列表中添加值?_Python - Fatal编程技术网

Python 如何在列表中添加值?

Python 如何在列表中添加值?,python,Python,我希望能够向列表中添加值。例如,我有以下两个列表: alist = [1,3,5,7,9] blist = [0] 我想在blist中插入一个值,该值是alist的值,并且在alist中前面有所有值。例如,blist将如下所示: blist = [0,1,4,9,25] 因为1是列表中的第一个值,所以它保持不变,然后我做1+3=4,1+3+5=9,等等。 然而,我对如何实现这一点感到非常困惑。我有以下代码: list1 = [1,2,3,4,5] list2 = [0] x = 0 wh

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

alist = [1,3,5,7,9]
blist = [0]
我想在blist中插入一个值,该值是alist的值,并且在alist中前面有所有值。例如,blist将如下所示:

blist = [0,1,4,9,25] 
因为1是列表中的第一个值,所以它保持不变,然后我做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]。但是,我不知道如何按照我需要的方式添加值。

这可以通过列表理解来完成

blist = [sum(alist[:i]) for i in range(len(alist) + 1)]
给予

[0, 1, 4, 9, 16, 25]

这可以通过列表来完成

blist = [sum(alist[:i]) for i in range(len(alist) + 1)]
给予

[0, 1, 4, 9, 16, 25]
有一个很好的功能,可以实现这一点和更多:

from itertools import accumulate
alist = [1,3,5,7,9]
blist = [0] + list(accumulate(alist))
# blist is now [0, 1, 4, 9, 16, 25]
有一个很好的功能,可以实现这一点和更多:

from itertools import accumulate
alist = [1,3,5,7,9]
blist = [0] + list(accumulate(alist))
# blist is now [0, 1, 4, 9, 16, 25]

为了完成,我再加上一个简单的答案

import numpy as np
alist = [1,3,5,7,9]
blist = [0]
blist = blist + list(np.cumsum(alist))

为了完成,我再加上一个简单的答案

import numpy as np
alist = [1,3,5,7,9]
blist = [0]
blist = blist + list(np.cumsum(alist))

我将您的blist=[o]编辑为blist=[0],因为我很确定您的意思不是blist=['o']。仅供参考blist=[o]是一个名称错误如果你还没有结婚做这是纯python,我会看看numpy.cumsum你在期望的结果中缺少16个吗?@cosmic:你的编辑删除了你问题中所有的实际问题。不要这样做。我将您的blist=[o]编辑为blist=[0],因为我很确定您不是指blist=['o']。仅供参考blist=[o]是一个名称错误如果你还没有结婚做这是纯python,我会看看numpy.cumsum你在期望的结果中缺少16个吗?@cosmic:你的编辑删除了你问题中所有的实际问题。不要这样做。次要说明:在现代3.5+Python中,您可以在一个步骤中构建blist,而不需要使用blist=[0,*AccumerateAList]的临时列表。次要说明:在现代3.5+Python中,您可以在一个步骤中构建blist,而不需要使用blist=[0,*AccumerateAList]的临时列表。