【发布时间】:2015-02-09 13:48:14
【问题描述】:
我正在尝试一些 python 编程元素,并尝试在此过程中生成一个加泰罗尼亚数字数组。
我不断收到上述错误,但我似乎无法解释原因或找到任何启发性的信息来源。
该函数使用当前元素计算列表 C 的下一个元素,从 C[0]=0 开始。
我已经减少了我的代码以使事情变得更简单,但仍然保留了错误。
from math import *
C = []
C += [0]
def ppC(n,C): # increment list C
print( C[n] ) # list index out of range
C += [ C[n]*(4*n+2)/(n+2) ]
n += 1
ppC(n+1,C) # recursive
ppC(0,C) # RUN
【问题讨论】:
-
听起来你超出了数组的大小
-
您将
1添加到n两次,但只向C添加了一个元素。 -
值得注意的是
list.append(element)存在于您想要将单个元素添加到列表中,而不是执行 `list += [element] (这会创建一个额外的列表)。您可能还想查看python style guide - 诸如奇数间距和对变量名称使用奇数大写字母会使代码难以阅读。 -
看起来你可能也遇到了无限递归的问题。
-
另外,你可能想看看 a generator 做这种事情 - 比建立这样的列表更高效、更容易编写。