用python的生成器产生杨辉三角

提到python的生成器,或许大家会有这样的疑问:“什么是python生成器?,为什么要引入这样的机制?”

其实要回答这个问题很简单,听我细细道来。

相信大家都听过python的列表推导,也就是列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。

了解了生成器是什么玩意儿以后,接下来我们看看怎样用python生成器产生杨辉三角

期望输出:

[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]

python源代码:

程序运行结果如下:

猜你喜欢

转载自blog.csdn.net/wangyuanshun/article/details/77771526