python中的序列对象 str、list、tuple、set、dict都是可迭代对象。
要注意,这些可迭代对象本身不是迭代器对象。
可迭代对象通过调用.__iter__可返回一个迭代器对象。
迭代器通过调用.__next__方法返回迭代器对象中的一个元素。
注意:
1、迭代器对象一定是可迭代对象
2、可迭代对象不一定是迭代器对象(如list是可迭代对象,而不是迭代器对象,需要通过调用__iter__返回一个迭代器对象。而通过open(file)返回的file对象,本身即是可迭代对象也是迭代器对象)
mylist = [0, 1, 2, 3,] iter_mylist = mylist.__iter__() print(iter_mylist) # ==> <list_iterator object at 0x000001FFF8A6A748>
print(iter_mylist.__next__()) print(iter_mylist.__next__()) print(iter_mylist.__next__()) print(iter_mylist.__next__()) # ==> 0 1 2 3