迭代器与生成器

迭代器与生成器,第1张

迭代器与生成器 1.关于迭代器

迭代器用于迭代 *** 作的对象,在其内部实现了__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, in 
    print(res.__next__())
StopIteration

当获取迭代器中的结果时,调用__next__()方法,每次基于上次的结果进行输出,直到迭代器中没有元素抛出stopiteration的异常。

2.2获取迭代器中元素的几种方法

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5572166.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存