首页 > 编程语言 >python的迭代器和生成器?

python的迭代器和生成器?

时间:2024-09-09 23:17:04浏览次数:9  
标签:返回 迭代 generator python 生成器 yield next

python中的迭代器和生成器都是用来处理数据序列的。

迭代器

迭代器是一个可以记住遍历位置的对象,使用iter()创建一个迭代器,使用next()方法依次返回迭代器中的每一个元素,如果数组里面的数据已经遍历完了,就会抛出StopIteration异常
list=[2,9,34,56,78,3,6,8,3,67]
创建迭代器:
it=iter(list)
使用next()方法依次返回
print(next())
会依次取出2,9,34,56.....结果,直到抛出异常

生成器

生成器是一个特殊的迭代器,使用yield产生一系列的值,定义一个生成器,用于传入一个n值,返回在满足条件的情况下,当n>0时,返回n的值:
def my_generator(n):
while n>0:
yield n
n-=2
在生成器函数被调用时,返回的是一个生成器对象,但是并不会立刻执行函数里面的代码,每次从这个生成器请求值时,通过next()方法,生成器会执行遇到yield语句,然后返回yield的值
generator=my_generator(20)
print(next(generator))

标签:返回,迭代,generator,python,生成器,yield,next
From: https://www.cnblogs.com/tyl-bok/p/18405563

相关文章

  • python和C++中的运算符的一一对应
    在Python和C++中,许多运算符是相似的,因为它们都遵循许多基础的编程概念,比如算术运算、逻辑运算、位运算等。然而,也存在一些差异,尤其是在一些高级特性上,比如Python的动态类型和C++的静态类型。以下是一些常见的运算符在两个语言中的对应情况:算术运算符PythonC++描述++加法......
  • [开题报告]flask框架基于Vue的电商管理系统(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为全球经济的重要组成部分,极大地改变了人们的消费习惯和商业运营模式。电商平台的兴起,不仅为消费者......
  • [开题报告]flask框架基于Web安全的大学数学错题收集系统(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在高等教育体系中,数学作为一门基础且重要的学科,其学习成效直接影响学生的专业素养与后续课程的掌握程度。然而,大学生在学习数学过程中普遍......
  • [开题报告]flask框架基于的郑州市网上生鲜商城设计与实现(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分,尤其在食品消费领域,消费者对于便捷、高效、品质保证的生鲜购买渠......
  • [开题报告]flask框架基于架构的信息发布系统管理和运维的实现(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在信息爆炸的时代,信息的高效发布与传播已成为企业获取市场竞争优势的关键因素之一。随着互联网的普及和技术的不断进步,信息发布系统作为连......
  • Python 操作 MySQL 数据库
    什么是MySQLdb?如何安装MySQLdb?数据库连接创建数据库表数据库插入操作数据库查询操作数据库更新操作删除操作执行事务错误处理Python标准数据库接口为PythonDB-API,PythonDB-API为开发人员提供了数据库应用编程接口。Python数据库接口支持非常多的数据库,你......
  • 全网最适合入门的面向对象编程教程:46 Python函数方法与接口-函数与事件驱动框架
    全网最适合入门的面向对象编程教程:46Python函数方法与接口-函数与事件驱动框架摘要:函数是Python中的一等公民,是一种可重用的代码块,用于封装特定的逻辑;事件驱动框架是一种编程模式,它将程序的控制流转移给外部事件,如用户输入、系统消息等,它事件驱动框架可以使用函数作为事......
  • Python-stdlib bisect
    官方文档:bisect---数组二分算法bisect_left(a,x,lo=0,hi=len(a),*,key=None)在a中找到x合适的插入点以维持有序。参数lo和hi可以被用于确定需要考虑的子集;默认情况下整个列表都会被使用。如果x已经在a里存在,那么插入点会在已存在元素之前(也就是左边)。如果a......
  • python学习总结之异常总结
    1.异常的基本概念异常(Exception):在程序执行过程中,遇到非正常的或不可预见的状况(如除以零、文件不存在等),导致程序无法按照预期继续执行时,Python会抛出一个异常。抛出异常(Raise):当Python解释器检测到错误时,它会抛出一个异常。此外,开发者也可以使用raise语句手动抛出异常。捕获异常(Catc......
  • Python与Go在AIGC领域的应用:比较与分析
    1.引言AIGC(ArtificialIntelligenceGeneratedContent,人工智能生成内容)近年来在图像生成、自然语言处理、代码生成等多个领域取得了重大进展。无论是文本生成、图像创作,还是自动代码生成,AIGC都在推动内容创作进入一个全新的高度。Python凭借其简洁的语法和丰富的机器学习、深度学......