美文网首页
python生成器、迭代器、可迭代对象

python生成器、迭代器、可迭代对象

作者: Eren_Jaeger | 来源:发表于2019-04-10 11:22 被阅读0次
  • 可迭代对象
  • 迭代器
  • 生成器
1.可迭代对象

可以被for循环遍历的对象成为可迭代对象,其中包括list、str、tuple、dict、set、generator都属于可迭代对象,这是属于一个很大的概念范畴

>>> generator1 = (i for i in range(10))
>>> next(generator1)
0
>>> next(generator1)
1
>>> next(generator1)
2
>>> dict1 = {'A': 1, 'B': 2}
>>> next(dict1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict' object is not an iterator
>>> 
2.迭代器

可以被next函数调用、直到没有数据时抛出StopIteration错误的可迭代对象成为迭代器(iterator),迭代器是一个数据流,我们可以知道它是有序的,但是我们不知道它的长度。iterator可以表示很大的数据流,可以是全体自然数,对于list来说可做不到那么多内存给它用。

如何将list、tuple、dict、str、set等数据转换成迭代器?
可以使用iter()函数转换,比如:

>>> tuple1 = (1, 2, 3,)
>>> 
>>> next(tuple)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'type' object is not an iterator
>>> 
>>> 
>>> next(iter(tuple1))
1
>>> 
3.生成器

生成器(generator)属于iterator的对象,可以有两种写法:一种是把列表生成式的[]改成()就变成了generator,另一种则是在函数中使用yield函数。具体生成器怎样创建,我在上一篇文章中有写

相关文章

  • Python基础-16生成器-迭代器

    16.生成器-迭代器     可循环迭代的对象称为可迭代对象,迭代器和生成器函数是可迭代对象,在Python中提供...

  • Python中的迭代器和生成器

    今天我们来学习下Python中的迭代器和生成器。 迭代和可迭代对象 在学习迭代器之前,我们需要了解下迭代和可迭代对...

  • 理解迭代器/生成器

    完全理解Python 迭代对象、迭代器、生成器 迭代和生成操作总结 Python迭代器 http://www.ji...

  • Python可迭代对象,迭代器,生成器关系

    列表,元组,字符串,迭代器,生成器都是可迭代对象。所以,可迭代对象不一定是迭代器,生成器。 将一个可迭代对象传递给...

  • 迭代器、生成器和协程

    迭代器、生成器和协程 可迭代(Iterable) Python 中任意的对象, 只要定义了可以返回一个迭代器的 _...

  • 迭代器

    可迭代对象(Iterable): for迭代器(Iterator): for + next生成器属于迭代器。 验...

  • 可迭代对象、迭代器、生成器

    可迭代对象 --> 迭代器 --> 生成器; 可迭代对象:实现了__iter__()方法的对象,该方法返回迭代对象...

  • yield and Iterator

    Generator(生成器) 生成器是特殊的迭代器,迭代器不一定是生成器。 生成器与迭代器均是可迭代对象。 目前学...

  • 迭代机制

    可迭代对象、迭代器、生成器、生成式区别 a. 可迭代对象: 一个对象能够被迭代的使用,这个对象就是可迭代对象 b....

  • python生成器、迭代器、可迭代对象

    可迭代对象 迭代器 生成器 1.可迭代对象 可以被for循环遍历的对象成为可迭代对象,其中包括list、str、t...

网友评论

      本文标题:python生成器、迭代器、可迭代对象

      本文链接:https://www.haomeiwen.com/subject/cgzgiqtx.html