Python:使用列表推导生成几何级数

时间:2016-07-07 00:18:16

标签: python list python-3.x list-comprehension

在Python中,我可以单独使用列表推导生成几何级数吗?我不知道如何引用添加到列表中的元素。

这就像Writing python code to calculate a Geometric progressionGenerate list - geometric progression

2 个答案:

答案 0 :(得分:2)

列表推导不允许您参考之前的值。你可以使用more appropriate tool

解决这个问题
from itertools import accumulate
from operator import mul
length = 10
ratio = 2
progression = list(accumulate([ratio]*length, mul))

或避免使用以前的值:

progression = [start * ratio**i for i in range(n)]

答案 1 :(得分:1)

如果a_n = a * r ** (n - 1)a_n = r * a_(n - 1)定义了几何级数,那么您可以执行以下操作:

a = 2
r = 5
length = 10

geometric = [a * r ** (n - 1) for n in range(1, length + 1)]

print(geometric)
# [2, 10, 50, 250, 1250, 6250, 31250, 156250, 781250, 3906250]