Python数组算法

2024-10-01 09:38:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个给定数组的函数:

arrayA = [2,3,1]

函数需要返回一个新数组,其中:

newArray = [2,5,6]

这几乎就像斐波那契函数。你知道吗

newArray[0] = arrayA[0]
newArray[1] = arrayA[0] + arrayA[1]
newArray[2] = arrayA[1] + arrayA[2] + arrayA[3]

到目前为止,这是我的代码,但总是以一个空列表结束。arrayA作为参数传入。你知道吗

def generateNewArray(A):
    A=[]
    newArray=[]
    for i in range(len(A)):
        newArray[i]=A[i]+A(i+1)
    return  newArray

Tags: 函数代码in列表for参数lenreturn
2条回答
print [sum(A[:i]) for i in range(1,len(A)+1)]

我想。。。我认为在某个地方有一个累积的总和。。。或者是在numpy

numpy.cumsum(A)

也可以使用函数式编程模式:

试试这个:

def generateNewArray(inputArray):
    return map(lambda x: sum(inputArray[:x]), xrange(1, len(inputArray) + 1))

例如:

In [7]: generateNewArray([2, 3, 1])
Out[7]: [2, 5, 6]

相关问题 更多 >