博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成器,推导式
阅读量:5239 次
发布时间:2019-06-14

本文共 1058 字,大约阅读时间需要 3 分钟。

生成器

生成器的本质就是迭代器

通过函数变成一个生成器

1 def func(): 2     print(1) 3     yield 5  # 我的函数走到这了 4     print(2) 5     yield 9  # 我的函数走到这了 6  7 g = func()  # 生成一个生成器 8  9 print(g.__next__())10 print(g.__next__())11 print(list(range(10000))) 每次遇到yield会返回并标记 下次从yield下面的函数开始运行 一共只有一个生成器
1 def func():2     print(1)3     # return 54     yield 55 print(func().__next__())  # 这样生成一个生成器6 print(func().__next__())  # 这样生成一个生成器7 print(func().__next__())  # 这样生成一个生成器8 print(func().__next__())  # 这样生成一个生成器9 print(func().__next__())  # 这样生成一个生成器 遇到yield就返回 再次打印还是从头开始 每次打印都生成一个新的生成器

函数遇到return就结束 遇到yield不结束就挂起 

yield作用 挂起 返回值 接受值

生成器一定是一个迭代器 迭代器不一定是生成器

生成器是可以让程序员自己定义的一个迭代器

生成器的好处 可以节省空间

生成器的特性 一次性的 惰性机制 从上到下

send 相当于 next + 传的值 第一次接触生成器时,如果要用send  send的值必须是None  一般建议使用__next__

yield from 将可迭代对象元素挨个返回

python2 3x 版本操作区别

python2 iter() next()

python3 iter() next() __next__() __iter__()

推导式

列表推导法 [结果 语法]  [ ] 是容器

集合推导法 [结果 语法}

字典推导法 {键:值 语法}

没有元组的推导式

看着像元组的推导式 其实是一个生成器推导式 

推导器可以节省代码

推导式不宜太长 可读性差

外部需要容器包一下 里边第一个位置是结果 剩下的是语法 每个间隔用空格隔开

 

转载于:https://www.cnblogs.com/biulo/p/10542957.html

你可能感兴趣的文章
Linux磁盘管理及LVM讲解
查看>>
SQL Server 2008数据类型
查看>>
Linux服务器注意事项
查看>>
vs2010 项目生成成功,发布失败
查看>>
把文件保存到 sdcard
查看>>
大数据时代下的企业管理创新
查看>>
ES6数组
查看>>
洛谷 [P2051] 中国象棋
查看>>
『题解』UVa11324 The Largest Clique
查看>>
iPhone深入浅出 iOS 之生命周期
查看>>
算法笔记_097:蓝桥杯练习 算法提高 P1001(Java)
查看>>
OpenGL3-绘制各种图元绘制
查看>>
elasticsearch 聚合查询
查看>>
安卓app测试之Monkeyrunner
查看>>
C++小点之可调用类型声明std::function
查看>>
华为项目Tree canvas画图 数据4
查看>>
Python os.getcwd() 方法
查看>>
python os.path模块
查看>>
封装连接数据库
查看>>
[NSURL URLWithString:] returns nil
查看>>