首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python数组算法

Python数组算法
EN

Stack Overflow用户
提问于 2016-05-21 03:31:07
回答 2查看 157关注 0票数 3

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

代码语言:javascript
复制
arrayA = [2,3,1]

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

代码语言:javascript
复制
newArray = [2,5,6]

这几乎就像斐波纳契函数。

代码语言:javascript
复制
newArray[0] = arrayA[0]
newArray[1] = arrayA[0] + arrayA[1]
newArray[2] = arrayA[1] + arrayA[2] + arrayA[3]

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

代码语言:javascript
复制
def generateNewArray(A):
    A=[]
    newArray=[]
    for i in range(len(A)):
        newArray[i]=A[i]+A(i+1)
    return  newArray
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-21 03:40:49

代码语言:javascript
复制
print [sum(A[:i]) for i in range(1,len(A)+1)]

我猜..。我想实际上在某个地方有一个累加和 ..。也可能是在“裸体”

代码语言:javascript
复制
numpy.cumsum(A)
票数 2
EN

Stack Overflow用户

发布于 2016-05-21 05:35:25

您还可以使用函数式编程模式:

试试这个:

代码语言:javascript
复制
def generateNewArray(inputArray):
    return map(lambda x: sum(inputArray[:x]), xrange(1, len(inputArray) + 1))

例如:

代码语言:javascript
复制
In [7]: generateNewArray([2, 3, 1])
Out[7]: [2, 5, 6]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37358581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档