Python 生成器与迭代器
Posted 大伦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 生成器与迭代器相关的知识,希望对你有一定的参考价值。
一、可迭代对象与迭代器
1.可以使用for循环的对象就是可迭代对象,例如list,tuple,dict,字符串等
可以使用isinstance(对象,iterable)语句进行判断
2.可以被next()函数调用,不断返回下一个值的对象叫做迭代器
generator(生成器)都是iterator(迭代器)
可以使用isinstance(对象,iterator)语句进行判断
二、生成器
类似于一种算法,即边循环边计算
常用生成方法:1.tuple生成式:例如 g = (x * 3 for x in range(10))
2.把循环中的print改为yield,如:
demo1:斐波那契数列
def fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
demo2:杨辉三角
def triangles():
l = [1]
i = 1
while True:
yield l
l = [1]+ [l[i-1] + l[i] for i in range(1,i)]+[1]
i += 1
#另一种方式
#i = len(l)
#l = [1]+ [l[i-1] + l[i] for i in range(1,i)]+[1]
tri = triangles()
n = 0
while n < 10:
print(next(tri))
n += 1
以上是关于Python 生成器与迭代器的主要内容,如果未能解决你的问题,请参考以下文章