python之迭代器与生成器
python之迭代器与生成器 可迭代 假如现在有一个列表,有一个int类型的12345。我们循环输出。 list=[1,2,3,4,5] for i in list: print(i) for i in 12345: print(i) 结果: Traceback (most recent call last): File "C:/Pycham/生成器与迭代器/test1.py", line 6, in <module> for i in 12345: TypeError: 'int' object is not iterable 1 2 3 4 5 报错显示:1234不是可以被迭代的。 那python中哪些是 可迭代 的:字符串、列表、元组、字典、集合。 for循环工作机制:for循环在循环一个对象的时候,会调用这个对象的iter方法,得到迭代器,然后在调用这个迭代器的next方法,去获得这个迭代器中包涵的每个值。 现在可能我们不太明白,什么是iter方法,什么是迭代器,什么是next方法。 迭代器 但是如果只是将数据集内的数据“一个挨着一个的取出来,for循环就可以做到,为什么要使用迭代器呢?迭代器是什么? 迭代器能迭代的一定是可以迭代的数据类型。 如果我们要使用迭代器,一定要将可以被迭代的数据集转为迭代器,使用 __iter__() 。 #列表生成式 list=[1