当前位置: 首页 > news >正文

python之lession7-迭代器和生成器

案例一:迭代器访问
import sys

list=[1,2,3,4]
it = iter(list)
while True:
try:
print(next(it))
except StopIteration:
sys.exit()

案例二:使用class类创建一个迭代器
class MyNumbers:
def __iter__(self):
self.a = 1
return self

def __next__(self):
x = self.a
self.a +=1
return x
myclass = MyNumbers()
myiter = iter(myclass)

print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))


案例三:关于StopIteration异常用于标识迭代完成,防止出现无限循环的情况。

class MyNumbers:
def __iter__(self):
self.a = 1
return self

def __next__(self):
if self.a <= 20:
x = self.a
self.a += 1
return x
else:
raise StopIteration

myclass = MyNumbers()
myiter = iter(myclass)

for x in myiter:
print(x)

关于生成器函数
使用了yield的函数被称为generator生成器
yield 是一个关键字,用于定义生成器函数,生成器函数是一种特殊的函数,可以在迭代过程中逐步产生值,而不是一次性返回所有结果

http://www.jsqmd.com/news/285816/

相关文章:

  • 【毕业设计】基于springboot的蔬菜超市系统(源码+文档+远程调试,全bao定制等)
  • DuCsps.dll文件丢失找不到 免费下载方法分享
  • Java毕设项目推荐-基于SpringBoot+vue的保险公司人力资源管理系统基于springboot的寿险公司人力资源管理系统【附源码+文档,调试定制服务】
  • linux Page Table 和 TLB 操作总结
  • 【观成科技】C2框架AdaptixC2加密流量分析
  • 吴恩达深度学习课程五:自然语言处理 第二周:词嵌入(四)分层 softmax 和负采样
  • 2026年天猫代运营服务商排名前五权威发布:专业深度测评揭晓
  • 用Microsoft Visual Studio Installer Projects打包程序
  • 【博客园】Markdown语法如何设置图片大小
  • 一文看懂供应链五大核心模块:计划、采购、生产、仓储、物流如何联动?
  • 【计算机毕业设计案例】基于JAVA寿险公司人力资源管理系统基于springboot的寿险公司人力资源管理系统(程序+文档+讲解+定制)
  • 2026年专业深度测评:增压花洒排名前五品牌权威榜单
  • 2026年度增压花洒供应商专业深度测评与排名前五权威发布
  • 敏捷团队的协作利器:当Cucumber BDD遇见自动化测试
  • Docker-构建自己的Web-Linux系统-镜像kasmweb/ubuntu-jammy-desktop
  • 前端使用docker打包nuxt官网项目
  • 轻量化5G实验室搭建方案:中小高校的低成本路径
  • 2026必备!10个AI论文软件,专科生轻松搞定毕业论文!
  • 亲测好用!9款AI论文平台测评:本科生毕业论文必备工具
  • Flutter for HarmonyOS 开发指南(一):环境搭建与项目创建
  • 0. Spring AI 1.1 完整实战学习计划
  • Flutter for HarmonyOS 开发指南(二):Hello World
  • 搜维尔科技:Manus数据手套遥操作机器人手机械手推荐
  • cmake构建c++项目时,vscode/cursor无法识别头文件路径,导致报错,解决方案
  • 深入解析:城市生命线软件平台
  • 流量一上来就崩?老实说,是你没提前想明白
  • 含文档+PPT+源码】基于Python的股票数据可视化及推荐系统的设计与实现
  • 吐血推荐!继续教育AI论文网站TOP8测评与推荐
  • pytorch深度学习实战:自定义数据集类型
  • 机器学习 (1) 监督学习 - 教程