# 方法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)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐