auth == authentication 认证
finance 金融
generator 生成器
StopIteration 迭代结束
iterable 迭代
生成器原理:不会存储在任何地方,随用随取
1.列表生成式:
(1)
a=[x*2 for x in range(10)]
b=[x*x for x in range(10)]
print(a)
print(b)
(2)函数列表:
def f(n):
return n**3
a=[f(x) for x in range(10)]
print(a)
print(type(a))
2.元组:
(1)
t=('sad',25)#元组
a,b=t
#相当于
# a=t[0]
# b=t[1]
print(a)
print(b)
(2)
a=(x*2 for x in range(5))
print(a)
print(next(a))#等价于a.__next__() in Python2.0: a.next()
print(next(a))
print(next(a))
print(next(a))
print(next(a))#取完
#print(next(a))#报错StopIteration 迭代结束
#生成器就是一个可迭代对象
3.生成器一共两种创建方式:
(1)(x*2 for x in range(5))
(2) yield
例1:
def foo():
print('ok')
yield 1
print('ok2')
yield 2
return None
# foo()
# print(foo())#<generator object foo at 0x000001D5C423E5E8>生成器对象
# next(foo())
# next(foo())#不会和下面结果一样,foo()从头开始
#或
g=foo()
print(g)
next(g)
next(g)#会记住上一次的yield1,然后继续yield1下继续执行yield2
例2:
def foo():
print('ok')
yield 1
print('ok2')
yield 2
return None
g=foo()
print(g)
a=next(g)
b=next(g)
print(a,b)
4. for i in 可迭代对象
什么是可迭代对象:内部有iter方法的都是可迭代对象
#列表
l=[1,2,3]
l.__iter__()
#元组
t=(1,2,3)
l.__iter__()
#字典
d={'name':'123'}
l.__iter__()
5.生成器:通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的
列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
所以,如果列表元素可以按照某种算法推算出来,那我们是否可以再循环的过程中不断推算出后续的元素呢?这样就不必
创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
6.斐波那契序列
def fbn(max):
n,before,after=0,0,1
while n<max :
# print(after)
yield (after)
before,after=after,before+after
# tmp = before
# before = after
# after = tmp + after
n=n+1
g=fbn(4)
print(g)
print(next(g))
print(next(g))
print(next(g))
print(next(g))#next最多4个
7.send原理及用法
def bar():
print('ok1')
count=yield 1
print(count)
# print('ok2')
yield 2
b=bar()
b.send(None)#相当于next(b) 第一次send前如果没有next,只能传一个send(None)
ret=b.send('eric')#与next()一样,不过send()可以传值
print(ret)
优质内容筛选与推荐>>
1、es6学习笔记2-解构赋值
2、php 不等待返回的实现方法(异步调用)
3、wkhtmktopdf
4、windows及linux下 golang开发环境配置
5、3月16号


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号