# 方法1.1:借助循环遍历列表的cycle方法
from itertools import cycle
for _ in cycle([1]):
print('h')
# 方法1.2:借助无穷迭代器repeat
from itertools import repeat
for _ in repeat(None): # repeat(elem,[n]),对elem迭代n次,n不传则默认无限次
print('h')
# 方法1.3:借助计数器,但是事实上只会循环到计数值大到将内存撑爆时
from itertools import count
for _ in count():
print('h')
# 方法2.1:借助iter,int函数每次迭代返回的都是0,始终不会等于哨兵值1,所以会无限迭代
for _ in iter(int, 1):
print('h')
# int函数和1只是个例子,可以传入其它可调用对象和哨兵值,只要迭代值始终不等于哨兵值就可以。
# 方法2.2:自己定义一个无穷迭代器
class InfIter:
def __iter__(self):
return self
def __next__(self):
pass
for _ in InfIter():
print("h")
# 方法3:不停地往列表尾部添加元素,但是事实上只会循环到列表大到将内存撑爆时
inf_list = [1]
for _ in inf_list:
print('h')
inf_list.append(1)