我有一个包含值的列表(在我的情况下为元组) - 在开头有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)
答案 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]