手机网站设计方案,龙岗网站建设深圳信科,中职网络营销教案,二建报名入口官网def func():print(哈哈哈)yield 1 # return 和 yield 都可以返回数据print(呵呵呵)
gen func() # 不会执行你的函数#xff0c;拿到的是生成器
ret gen.__next__() # 会执行到下一个yield
print(ret)
gen.__next__() # 继续执行函数到下一个yield 函数中如果有yield 这个函… def func():print(哈哈哈)yield 1 # return 和 yield 都可以返回数据print(呵呵呵)
gen func() # 不会执行你的函数拿到的是生成器
ret gen.__next__() # 会执行到下一个yield
print(ret)
gen.__next__() # 继续执行函数到下一个yield 函数中如果有yield 这个函数就是生成器函数生成器函数() 获取的是生成器这个时候不执行函数yield:相当于return可以返回数据但是yield不会彻底中断函数分段执行函数 def order():for i in range(100000):yield 衣服 str(i)
g order() # 获取生成器
mingwei g.__next__()
print(mingwei)
zhaoyinning g.__next__()
print(zhaoyinning) send() 和 __next__()的区别 1.send和next都是让生成器向下走一次 2.send可以给上一个yield的位置传递值不能给最后一个yield发送值在第一次执行生成器代码的时候不能使用send() def eat():print(我吃什么啊)a yield 馒头print(a,a)b yield 大饼print(b,b)c yield 韭菜盒子print(c,c)yield GAME OVER
gen eat() # 获取生成器
ret1 gen.__next__()
print(ret1) # 馒头
ret2 gen.send(胡辣汤) # a 胡辣汤
print(ret2) # 大饼
ret3 gen.send(狗粮) # b 狗粮
print(ret3) # 韭菜盒子
ret4 gen.send(猫粮) # c 猫粮
print(ret4) # GAME OVER 推导式用一句话生成一个列表 lst [pythonstr(i) for i in range(1,16)]
print(lst) 语法[ 结果 for循环 判断] lst [i for i in range(100) if i%2 1]
print(lst) # 100 以内能被3整除的数的平方
lst [i*i for i in range(100) if i%30]
print(lst) # 寻找名字中带有两个e的人的名字
names [[Tom, Billy, Jefferson, Andrew, Wesley, Steven,Joe],[Alice, Jill, Ana, Wendy, Jennifer, Sherry, Eva]]
# 不用推导式的方法
lst []
for line in names:for name in line:if name.count(e) 2:lst.append(name)
print(lst)#推导式的方法
lst [name for line in names for name in line if name.count(e) 2]
print(lst) 字典推导式 语法{k:v for循环 条件筛选} #[11,22,33,44] {0:11,1:22,2:33,3:44}
lst [11,22,33,44]
dic {i:lst[i] for i in range(len(lst))}
print(dic) # 键值对互换
dic {jj:林俊杰,jay:周杰伦,zs:赵四,ln:刘能}
dic2 {v:k for k,v in dic.items()}
print(dic2) 集合推导式可以去重复 lst [1,1,4,6,7,4,2,2] s {el for el in lst} print(s) 生成器表达式由于惰性机制 tu (i for i in range(10)) # 没有元组推导式生成器表达式
print(tu) # 生成器
print(tu.__next__()) def func():print(111)yield 222
g func()
g1 (i for i in g)
g2 (i for i in g1)print(list(g)) # [222] 源头从源头把数据拿走了
print(list(g1)) # [] 这里执行的时候源头已经没有数据了
print(list(g2)) # [] 这里也没有值 def add(a,b):return a b# 生成器函数 # 0-3
def test():for j in range(4):yield j# 0,1,2,3
g test() # 获取生成器# 懒
for n in [1,10,5]:g (add(n,i) for i in g)
# 到最后往里面放数据就对了
print(list(g)) # [15,16,17,18]print(list(g)) # [] 转载于:https://www.cnblogs.com/Little-Raccoon/p/10834696.html