是否有可能在for
循环中获得无限循环?
我的猜测是Python中可能存在无限循环.我想知道这个以供将来参考.
Python中无限循环的典型示例是:
while True: pass
要将其应用于for循环,请使用生成器(最简单的形式):
def infinity(): while True: yield
这可以使用如下:
for _ in infinity(): pass
要根据要求使用for循环回答您的问题,它将永远循环,因为1永远不会等于0:
for _ in iter(int, 1): pass
如果您想使用按第一个答案递增的数字进行无限循环,则可以使用itertools.count
:
from itertools import count for i in count(0): ....
是的,请使用始终产生另一个数字的生成器:这是一个示例
def zero_to_infinity(): i = 0 while True: yield i i += 1 for x in zero_to_infinity(): print(x)
也可以通过更改要迭代的列表来实现此目的,例如:
l = [1] for x in l: l.append(x + 1) print(x)