码迷,mamicode.com
首页 > 编程语言 > 详细

python-迭代器、生成器

时间:2019-11-21 10:08:36      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:执行   ons   range   对象   运用   生成器   例子   iterable   ict   

生成器属于迭代器

适合迭代器对象: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-迭代器、生成器

标签:执行   ons   range   对象   运用   生成器   例子   iterable   ict   

原文地址:https://www.cnblogs.com/lovesix/p/11902207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!