迭代器 —— 不依赖于索引的迭代方式
可迭代对象
-
内置有__iter__方法的对象
迭代器对象
-
内置有__iter___和__next__方法的对象
迭代器对象一定是可迭代对象,可迭代对象不一定是迭代器对象。
例子:
a_list = [1,2,3] #可迭代对象
a_str = 'abc' #可迭代对象
list_iter = iter(a_list) #迭代器对象
a_gen = (x for x in range(10)) #迭代器对象
print('__iter__' in dir(a_list))
print('__next__' in dir(a_list))
print('__iter__' in dir(a_str))
print('__next__' in dir(a_str))
print('__iter__' in dir(a_gen))
print('__next__' in dir(a_gen))
print('__iter__' in dir(list_iter))
print('__next__' in dir(list_iter))
'''输出:
True
False
True
False
True
True
True
True
'''