1 一、迭代器:
2
3 1.可迭代协议:含有__iter__方法。
4 2.迭代器协议:同时含有__iter__和__next__方法。迭代器是可迭代对象。 iterator迭代器。
5 3.使用可迭代对象有什么好处? -->只有是可迭代对象,才可以使用for循环。
6 4.怎样判断一个变量可以使用for循环? -->只要判断它是可迭代对象就可以。使用print(dir(变量)) 执行结果有 '__iter__' 或使用
7 print('__iter__' in dir(变量)) 执行结果是True。
8 5. print('__iter__' in dir(int))
9 print('__iter__' in dir(bool))
10 print('__iter__' in dir(list))
11 print('__iter__' in dir(dict))
12 print('__iter__' in dir(set))
13 print('__iter__' in dir(tuple))
14 print('__iter__' in dir(enumerate([])))
15 print('__iter__' in dir(range(1)))
16 6.可迭代对象转化为迭代器的方法:可迭代对象.__iter__() 就可以得到一个迭代器。
17 7.迭代器中的__next__()方法可以一个一个取值,且值只能取一次,取完就没有了,取完最后一个,再执行next会报错。
18 8.迭代器的好处:1)可以从容器类型中一个一个取值,所有的值只能取一次。
19 2)节省内存空间,迭代器并不会在内存中占用一大块内存,而是随着循环,每次给我一个值。