迭代器和生成器
可迭代对象:现象上,能进行for循环的就是可迭代对象。 本质上:能调用__iter__()、iter()方法
列表 元组 字典 等都是可迭代对象
列表生成式:10盘菜
s = [x*2 for x in range(10000000)]
生成器:
就是一个可迭代对象。厨师,现吃现做------ 可以用next方法,也可以用for循环遍历
1. s = (x*2 for x in range(10000000000))
2. def和yield做一个生成器 函数中只要有yield就是生成器
def foo():
yield 1
print(foo())
会得到<generator object foo at 0x00000000027668E0>
迭代器包括生成器,优点:随用随拿,不用不拿,不占内存
for循环:1调用可迭代对象的iter()方法返回一个迭代器对象 2不断调用迭代器对象的next()方法 3处理StopIteration异常

浙公网安备 33010602011771号