python3 之 迭代器与生成器
2024-09-01 18:47:18
迭代器
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束。
迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
- 字符串、列表或元祖对象都可用于创建迭代器:
list = [1,2,3,4]
it = iter(list) #创建迭代器对象
print(next(it)) #输出迭代器的下一个元素 1
print(next(it)) #
print(next(it)) #
print(next(it)) # - 迭代器对象可以使用常规for语句进行遍历:
list = [1,2,3,4]
it = iter(list) #创建迭代器
for x in it:
print(x,end=' ') #1 2 3 4 也可以使用next()函数:
import sys list = [1,2,3,4]
it = iter(list) #创建迭代器对象 while True:
try:
print(next(it),end=' ')
except StopIteration:
sys.exit()
# 1 2 3 4
生成器
在python中,使用了yield的函数被称为生成器(generator)。
跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单的理解:生成器就是迭代器。
在调用生成器运行的过程中,每次遇到yield时,函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方法时,从当前位置继续执行。
调用一个生成器函数,返回的是一个迭代器对象。
- 字符串、列表或元祖对象都可用于创建迭代器:
import sys def fibonacci(n): #生成器函数--斐波那契
a,b,counter = 0,1,0
while True:
if (counter > n):
return #作用:如果计数大于n,则结束while循环
yield a
a,b = b,a+b
counter += 1 f = fibonacci(10) #f 是一个迭代器,由生成器函数返回生成 while True:
try:
print(next(f),end=' ')
except StopIteration:
sys.exit()
最新文章
- jquery遍历table获取td单元格的值
- JAVA JPA - 示例用法
- web页面的加载顺序
- LeetCode【217. Contains Duplicate】
- Tomcat 配置 HTTPS双向认证
- 如何生成RestFul Api文档
- 引擎设计跟踪(九.14.2h) 开发计划
- HDU1896Stones(优先队列)
- C# API: 生成和读取Excel文件
- codevs 1061 重复子串
- 触发按钮改变panel面板上的小圆圈颜色
- Shiro笔记--shiroFilter权限过滤
- bitset用法小结
- wcf生成客户端代理类步骤及语句
- sql查询语句时怎么把几个字段拼接成一个字段
- Manacher学习笔记
- SpringMVC的请求处理流程
- Code::Blocks环境下导入WS2_32.lib文件
- Mac 笔记本 开发日记
- MVC中使用JQuery方式进行异步请求和使用自带方式进行异步请求
热门文章
- Spring为IOC容器注入Bean的五种方式
- 写出float x 与“零值”比较的if语句——一道面试题分析
- Apache Solr Velocity模板注入RCE漏洞复现
- Django表单集合----Formset
- Unity5-ABSystem(二):AssetBundle导出
- 【IDEA】IDEA自动生成文档注释的设置方法
- 图片瀑布流,so easy!
- 学习笔记29_MVC异步上传图片
- python-->;二进制的用法
- 使用FinalShell 安装jdk和tomcat流程(Linux系统是centOS7.5)