【问题标题】:Python array algorithm [duplicate]Python数组算法[重复]
【发布时间】:2016-09-18 10:06:11
【问题描述】:

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

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

【问题讨论】:

  • A=[] 的意义何在?
  • @Jess 它返回一个空列表,因为您声明 A=[] 基本上说,当您启动函数时清空我的列表
  • 这当然是问题之一:P

标签: python arrays algorithm


【解决方案1】:

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

试试这个:

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]

【讨论】:

    【解决方案2】:
    print [sum(A[:i]) for i in range(1,len(A)+1)]
    

    我猜......我认为实际上有一个 累积和内置在某处......或者它可能是在 numpy 中

    numpy.cumsum(A)
    

    【讨论】:

    • 谢谢!完美运行!
    猜你喜欢
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2010-09-16
    • 2011-08-06
    • 2018-06-12
    • 2015-03-01
    • 2022-07-16
    相关资源
    最近更新 更多