标签:turn 循环 特点 数据 item 运行 返回 send 占用
本质就是迭代器. 一个一个的创建对象 创建生成器的方式: 1. 生成器函数 2. 通过生成器表达式来获取生成器 3. 类型转换(看不到)
生成器函数中包含 yield , 返回数据和return差不多. return会立即结束这个函数的执行 yield 可以分段的执行一个函数 生成器函数在执行的时候返回生成器. 而不是直接执行此函数 能向下执行的两个条件: __next__(), 执行到下一个yield send(), 执行到下一个yield, 给上一个yield位置传值 所有的生成器都是迭代器都可以直接使用for循环 都可以使用list()函数来获取到生成器内所有的数据 生成器中记录的是代码而不是函数的运行
def func(): print(‘赌神‘) yield ‘高进‘ g = func() # 创建生成器,此时运行会把生成器中的代码记录在内存,当执行到__next__(),运行此空间的代码,运行到yield结束.
优点: 节省内存, 生成器本身就是代码. 几乎不占用内存
特点: 惰性机制, 只能向前. 不能反复
lst = [‘张无忌‘,‘吴奇隆‘,‘刘诗诗‘,‘范冰冰‘,‘张翠山‘] lst1 = [i for i in lst if i[0] == ‘张‘] print(lst1)
dic = {"主食": "炒面", "副食": "小拌菜", "汤":"疙瘩汤"} dic1 = {v:k for k,v in dic.items() } print(dic1)
set = {‘赌神‘,‘赌圣‘,‘赌侠‘,‘侠客‘} list = {k for k in set if k[0] == ‘赌‘} print(list)
( 结果 for循环 if ) # 用小括号括起来
标签:turn 循环 特点 数据 item 运行 返回 send 占用
原文地址:https://www.cnblogs.com/uiys/p/10673145.html