我想在列表中生成一个序列,我知道如何使用 for 循环来执行此操作,但是如果我想生成列表以便将先前生成的元素包含在下一个元素中,我该怎么做这?我很不确定
即生成列表,使其项目为:
x只是一个符号
[x,(x)*(x+1),(x)*(x+1)*(x+2)]
而不是[x,x+1,x+2]
非常感谢任何帮助!
最佳答案
我喜欢为这类事情使用生成器。
def sequence(x, N):
i = 0
result = 1
while i < N:
result *= (x + i)
i += 1
yield result
>>> list(sequence(5, 10))
[5, 30, 210, 1680, 15120, 151200, 1663200, 19958400, 259459200, 3632428800L]
如果你安装了 numpy,这会更快:
np.multiply.accumulate(np.arange(x, x + N))
关于python - 生成一个序列,将前一个元素保存在下一个元素python中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17027188/