python-迭代器生成器

Posted lovesix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-迭代器生成器相关的知识,希望对你有一定的参考价值。

生成器属于迭代器

适合迭代器对象:list、dict、tuple、set、str

不适合迭代对象:int、float、bool

迭代器例子

a = [0,1,2,3]

iter(a) # 用iter()方法生成迭代对象

print(next(a)) #用next来查询,直到超范围

 

判读对象是否符合迭代例子

from collections import Iterable

a = [0,1,2,3]

b = 123

print(isinstance(a, Iterable))  #运用isinstance函数来判断,此结果为True,符合迭代

print(isinstance(a, Iterable)) #同上,此结果为Flase,不符合迭代

 

生成器例子

a = (i  for i in range(1000000))  #想当与列表生成式的[]改成(),此时a的类型为生成器(generator)

print(next(a))  #用next()来查询

 

函数进化成生成器:(把return改成yield)

例子:

def f(n):
for i in range(n):
yield i
     print(‘OKOK‘)

a = f(5) #定义一个变量来接受生成器的返回值
print(next(a)) #程序运行达到yield后就会停止,不会往下执行,所以只打印0
print(next(a)) #程序从上个断点yield开始执行,所以先打印‘OKOK‘,在打印1,然后停止
print(next(a))
print(next(a))
print(next(a))
# print(next(a))

或者用 for循环来打印(一次全部打印完,防止用next()方法来超范围报错)
for i in range(a):
  print(i)




以上是关于python-迭代器生成器的主要内容,如果未能解决你的问题,请参考以下文章

python:可迭代对象,迭代器,生成器函数,生成器的解析举例代码说明

Python概念之装饰器迭代器生成器

python函数:迭代器和生成器

Python3 迭代器与生成器

Python的高级特性(切片,迭代,生成器,迭代器)

Python---迭代器,生成器,列表推导式