python - 生成一个序列,将前一个元素保存在下一个元素python中

标签 python

我想在列表中生成一个序列,我知道如何使用 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/

相关文章:

python OrderedDict更新具有相同值的键列表

python - 无法评估 sympy 中的跟踪

python - 如何反序列化 celery 中的日期时间字符串?

python - 他们在 python 3 中更改了 astype ('string' ) 吗?

python - 从列表中提取出现在特定单词之后的第一个元素

python - 在 Mac OS X Sierra 上为 Django Python 安装 mysqlclient

python - 如何按键值正确排序字典?

python - 将 Thrift 服务器作为守护进程运行

python - 从 perl 调用 python 方法

python - PyCharm:同窗多项目,独立版本控制