python基础——生成器与迭代器
2024-10-11 09:47:03
生成器
def func():
print("111")
yield 1
print("222")
yield 3
print("333")
yield 3 ret=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 +=1
ret=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 += 1 f = fibonacci(10)
# 自己写迭代器
# import sys
# while True:
# try:
# print (next(f), end=" ")
# except StopIteration:
# sys.exit() # 内置迭代器
for i in f:
print(i,end=" ")
最新文章
- 【C#公共帮助类】 Utils 10年代码,最全的系统帮助类
- Linux命令:ps,netstat,top
- BAYSY2 的LVDS引脚 笔记
- hibernate的update() 更新延迟或者无法更新,导致同个service调用存储过程执行方法不精确
- Git Day02,工作区,暂存区,回退,删除文件
- 基本概率分布Basic Concept of Probability Distributions 8: Normal Distribution
- hdu1251(字典树)
- 安装wine qq2012
- Codeforces Round #312 (Div. 2) A. Lala Land and Apple Trees 暴力
- IOS 图片模糊处理 ------ 直接代码 复制出去就可用 值得标记
- Linq4j简明介绍
- mybatis 总结(1)
- #pta循环作业
- Lnmp修改php.ini配置
- C# 加载并显示菜单
- highstock+websocket实现动态展现
- Noisy Channel模型纠正单词拼写错误
- 面向对象的css less 和sass
- Spring Security OAuth2实现单点登录
- Spring Batch学习笔记(一)