python基础——推导,生成器

列表推导式:

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 后边的代码也会执行。



猜你喜欢

转载自blog.csdn.net/pythonzyj/article/details/80831599