-
python基础教程之python基础(14):生成器、列表推导式(2)
本站最新发布 Python从入门到精通|Python基础教程
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
send("胡辣汤")
print(ret2)
ret3 = gen.send("狗粮")
print(ret3)
ret4 = gen.send("猫粮")
print(ret4)
试听地址 https://www.xin3721.com/eschool/pythonxin3721/
send("胡辣汤")
send和__next__()区别:
1. send和next()都是让⽣成器向下走⼀次。
2. send可以给上⼀个yield的位置传递值,不能给最后⼀个yield发送值,在第⼀次执⾏⽣成器代码的时候不能使⽤send()。
⽣成器可以使⽤for循环来循环获取内部的元素:
- def func():
- print(111)
- yield 222
- print(333)
- yield 444
- print(555)
- yield 666
- gen = func()
- for i in gen:
- print(i)
- 结果:
- 111
- 222
- 333
- 444
- 555
- 666
回到顶部(go to top)
2. 列表推导式, ⽣成器表达式以及其他推导式
⾸先我们先看⼀下这样的代码,给出⼀个列表,通过循环,向列表中添加1-14 :
- lst = []
- for i in range(1, 15):
- lst.append(i)
- print(lst)
替换成列表推导式:
- lst = [i for i in range(1, 15)]
- print(lst)
列表推导式是通过⼀⾏来构建你要的列表,列表推导式看起来代码简单,但是出现错误之后很难排查。
列表推导式的常⽤写法:
[ 结果 for 变量 in 可迭代对象]
例,从python1期到python14期写入列表lst:
- lst = ['python%s' % i for i in range(1,15)]
- print(lst)
我们还可以对列表中的数据进⾏筛选
筛选模式:
[ 结果 for 变量 in 可迭代对象 if 条件 ]
- # 获取1-100内所有的偶数
- lst = [i for i in range(1, 100) if i % 2 == 0]
- print(lst)
⽣成器表达式和列表推导式的语法基本上是⼀样的,只是把[]替换成()
- gen = (i for i in range(10))
- print(gen)
- 结果:
- <generator object <genexpr> at 0x106768f10>
打印的结果就是⼀个⽣成器,我们可以使⽤for循环来循环这个⽣成器:
- gen = ("麻花藤我第%s次爱你" % i for i in range(10))
- for i in gen:
- print(i)
⽣成器表达式也可以进⾏筛选:# 获取1-100内能被3整除的数
- gen = (i for i in range(1,100) if i % 3 == 0)
- for num in gen:
- print(num)
- # 100以内能被3整除的数的平⽅
- gen = (i * i for i in range(100) if i % 3 == 0)
- for num in gen:
- print(num)
- # 寻找名字中带有两个e的⼈的名字
- names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven','Joe'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
- # 不⽤推导式和表达式
- result = []
- for first in names:
- for name in first:
- if name.count("e
栏目列表
最新更新
如何使用OS模块中的stat方法
Python os 模块
seek() 方法
python打开文件实例1
Python写入文件
什么是流?
文件操作如何进制逐行读取
Python相对路径
with创建临时运行环境
Python文件操作
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能