首页 > 代码库 > 生成器与迭代器
生成器与迭代器
生成器
def func(): print("111") yield 1 print("222") yield 3 print("333") yield 3ret=func()print(ret) #具有生成指定条件的数据能力的对象,进行循环的时候才会逐个生成数据r1=ret.__next__() #进入函数找到yield,获取yield后面的数据print(r1)r2=ret.__next__()print(r2)r3=ret.__next__()print(r3)
迭代器
def myrange(arg): #与内置函数xrange功能一致 start=0 while True: if start>arg: return yield start start +=1ret=myrange(3)for item in ret: #迭代器 print(item,end=" ")print("")
例子
def fibonacci(n): #生成器函数 - 斐波那契 a, b, counter = 0, 1, 0 while True: if (counter > n): return yield b a, b = b, a + b counter += 1f = fibonacci(10)# 自己写迭代器# import sys# while True:# try:# print (next(f), end=" ")# except StopIteration:# sys.exit()# 内置迭代器for i in f: print(i,end=" ")
生成器与迭代器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。