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

xiaoxiao2021-02-28  40

提到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源代码:

 

 

 

 

程序运行结果如下:

 

 

转载请注明原文地址: https://www.6miu.com/read-74934.html

最新回复(0)