Python基础篇之生成器
2022/4/23 9:15:27
本文主要是介绍Python基础篇之生成器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python基础篇之生成器
python中的生成器平时用的较少,这也跟我的工作性质不无关系,今天记录下生成器的几种用法,督促自己在技术上不至于落后太多。
生成器,是一个用来创建迭代器的工具,简答而又强大。下面看看生成器的几种用法。
生成器函数
主要使用yield语句,每个yield 会临时暂停处理,记住当前位置执行状态(包括局部变量和挂起的 try 语句)。当该生成器恢复时,它会从离开位置继续执行(这与每次调用都从新开始的普通函数差别很大)
例:
def genNum(n): print("生成数字:") for i in range(n): yield i print("继续执行") nums = genNum(4) print(next(nums)) for num in nums: print(num) 运行结果: 生成数字: 0 继续执行 1 继续执行 2 继续执行 3 继续执行
上述例子中,genNum本质生成了__next__函数,因此,在使用next()函数时会调用__next__,输出0,并停止在此处,下面调用for迭代,本质也是使用了__next__函数。
生成器表达式
在列表list中使用生成器表达式
nums = [i*i for i in range(4)] print(nums) 运行结果: [0,1,4,9]
在元组tuple中使用生成器表达式
nums = (i for i in range(4)) print(nums) print(next(nums)) 运行结果: <generator object <genexpr> at 0x000001CDD6860F90> 0
在字典dict中使用生成器表达式
dict1 = {x: '%s'%x for x in range(4)} print(dict1) {0: '0', 1: '1', 2: '2', 3: '3'}
总结
python中创建生成器有以上两种方式,优点代码比较简洁,缺点只能遍历一次。
欢迎对python感兴趣的小伙伴联系我呀~
这篇关于Python基础篇之生成器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-03用FastAPI掌握Python异步IO:轻松实现高并发网络请求处理
- 2025-01-02封装学习:Python面向对象编程基础教程
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型