列表推导式:
n=[]
for i in (10):
if i %3==0 :
n.append(i)
print(n)
简写成:
n=[x for i in (10) if i%3==0] 输出结果都是一样的
print(n)
字典推导式:
把字典的值和键交换
q={'a':10,'b':20}
qq={v,k for k,v in q.items}
print(qq)
集合推导式
zi={x**2 for i in [1,2,3,3]
print(zi) 输出结果为:zi={1,2,9} 重复的数字只会留下一个
生成器:
就是把推导式的“ [ ] " 改成 " ( ) " 调用一次next方法会得到下一个数 最后一个数调完了显示异常(StopIteration)退出
test=(x for x in rang(10))
next(test) 或 test.__next__()
yield 是写在生成器函数里 生成器函数跟普通函数差不多,普通函数是用return返回一个值,生成器函数使用yield返回一个值
list=[1,2,3,4,5,6]
def ff(x):
for i in x:
yield i
a=ff(list)
print(next(a)) 输出结果: 1
print(a.__next__()) 2
print(a.__next__()) 3
print(a.__next__()) 4
在生成器函数里 yield 后边的代码也会执行。