
迭代器用于迭代 *** 作的对象,在其内部实现了__iter__,和__next__。可以像列表一样可以通过for进行迭代,但列表内部实现了__iter__而没有实现__next__,任何实现了__iter__的都可以称之为可迭代对象,内部实现了__next__的可以称之为迭代器。迭代器一定是可迭代对象,但可迭代对象不一定是迭代器。
列表,字符串元组等都是可迭代对象。
list1 = [1,2,3]
print("__iter__" in dir(list1)) #True
string1 = "dhsdhsa"
print("__iter__" in dir(string1)) #True
2.迭代器示例
2.1可迭代对象执行__iter__()方法得到的是一个迭代器
list1 = [1,2,3]
print(list1.__iter__())
string1 = "dhsdhsa"
print(string1.__iter__())
dict1 = {"a": 1, "b": 2}
print(dict1.__iter__())
输出结果如下:
dict1 = {"a": 1, "b": 2}
res = dict1.__iter__()
print(res.__next__())
print(res.__next__())
print(res.__next__())
输出结果如下:
a b Traceback (most recent call last): File "D:/MyClass/python_basic_practice/iterable.py", line 11, inprint(res.__next__()) StopIteration
当获取迭代器中的结果时,调用__next__()方法,每次基于上次的结果进行输出,直到迭代器中没有元素抛出stopiteration的异常。
2.2获取迭代器中元素的几种方法欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)