Python之生成器和推倒式
作者:互联网
1、生成器和生成器函数:生成器的本质就是迭代器
生成器的创建方式:
通过生成器函数:
函数中包含了yield的就是生成器函数,可以分段执行函数
注意:生成器函数被执行. 获取到的是生成器. 而不是函数的执行
格式:def func():
yield "测试"
func()
通过生成器表达式创建生成器:(结果 for 变量 in 可迭代对象 if 筛选)
通过数据转换
生成器的取值
__next__()
send(值) 给上一个yield位置传一个值, 第一个和最后一个yield不用传值
可以for循环
list(g)
注:当生成器有多个yield时,最后一个yield之后如果再进行__next__() 会报错
2、 各种推倒式和生成器表达式(没有元组推导式)
列表推倒式 [结果 for 变量 in 可迭代对象 if 筛选]
lst=[i for i in range(1,15)]
print(lst)
字典推倒式 {结果 for 变量 in 可迭代对象 if 筛选} 结果=>key:value
dic={"a":"b","c":"d"}
di={v:k for k,v in dic.items()}
print(di)
或
di={dic[k]:k for k in dic}
print(di)
集合推倒式 {结果 for 变量 in 可迭代对象 if 筛选} 结果=>key
dic={"a":"b","c":"d"}
di={k for k in dic}
print(di)
标签:函数,迭代,di,Python,生成器,yield,dic,推倒 来源: https://blog.csdn.net/baidu_38432732/article/details/99605321