1. yield 基本概念
带有 yield 的函数在 Python 中被称之为 generator(生成器)
比如列表所有数据都在内存中,如果有海量数据的话将会非常耗内存。仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
如果列表元素按照某种算法推算出来,那我们就可以在循环的过程中不断推算出后续的元素,这样就不必创建完整的list,从而节省大量的空间。
简单一句话:想要得到庞大的数据,又想让它占用空间少,那就用生成器!
因此生成器的主要优点是一边循环一边计算产生数据的机制,占用内存少,缺点就是只能遍历1次
2. 代码实现斐波那契数列
斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。
数列形式: 1,1,2,3,5,8,13,…,
def f(n):
res = []
num,a,b = 1,0,1
while num <= n:
res.append(b)
a