2

我有一个包含值的列表(在我的例子中是元组) - 一开始有 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)
4

2 回答 2

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
于 2013-09-23T17:51:48.743 回答
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]
于 2013-09-23T17:43:10.220 回答