python循环不断扩展列表

时间:2013-09-23 17:34:06

标签: python list numpy

我有一个包含值的列表(在我的情况下为元组) - 在开头有1个元素。我需要遍历一个列表,并为列表中的最后一个值应用一些计算,这将为我提供下一个列表元素。之后,我需要连接这些列表并使用列表的最后一个值计算下一个元素。等等...

怎么做? NumPy也可以使用。

现在我喜欢这个,但它不起作用

while True:
    lst = [1]
    print(lst)
    for i in range(len(lst)):
        elem = lst[-1]
        new = elem + 10 // dummy computations
        lst.append(new)

2 个答案:

答案 0 :(得分:3)

如果您想稍后循环浏览列表,可以构建生成器:

def f(elem):
    return elem + 10

def lst(init):
    yield init
    while True:
        next = f(init)
        yield next
        init = next

这种情况永远存在,所以请确保你的循环有一些中断:

for i in lst(1):
    print i
    if i > 100:
        break

打印:

1
11
21
31
41
51
61
71
81
91
101

答案 1 :(得分:2)

这是如何开始的?

def f(x):
    return 2*x+1

a = [ 1 ]
while len(a) < 8:
   x = a[-1]
   y = f(x)
   a.append(y)

a
=> [1, 3, 7, 15, 31, 63, 127, 255]