标签:generator 获得 div tuple 可迭代对象 列表 序列 tuples alt
迭代器:具有一个next()函数
凡是可作用于for
循环的对象都是Iterable
类型;
凡是可作用于next()
函数的对象都是Iterator
类型,它们表示一个惰性计算的序列;
集合数据类型如list
、dict
、str
等是Iterable
但不是Iterator
,不过可以通过iter()
函数获得一个Iterator
对象。
a = [1,2,3,4,,5] for x in a: print x
生成器:也是一个可迭代对象
yield每次产生一个值(使用yield),函数就会被冻结,即函数停在那点等待被重新唤醒
def fib2(num):
a,b,c = 0,0,1
while a < num:
#print c
yield c #含yield
关键字,那么这个函数就不再是一个普通函数,而是一个generator
b,c = c, b+c
a=a+1
迭代器实现杨辉三角
预期效果:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
def triangles(): n = [1] while True: yield n #生成器函数的标志 n = [x+y for x,y in zip([0] + n,n+[0])]#生成一个列表,内包含[1],[1,1]....等 n = 0 for t in triangles():#迭代输出 print(t) n = n + 1 if n == 10: break
标签:generator 获得 div tuple 可迭代对象 列表 序列 tuples alt
原文地址:https://www.cnblogs.com/Just-for-myself/p/9663478.html