Python 生成器 generator (廖雪峰老师的课后题)

佛法曰:万物皆有缘

Python中的列表,会因为内存的大小,而存在限制,并且一旦过大,多内存的消耗也是可观的。

为解决这个问题,可以对数值有规律的列表进行优化,存储生成数值的规律,还可以加上起始与终点。这样在需要输出使用时,就可以根据存储的生成规律进行数值的循环生成,而存储的生成数值的规律就是生成器。

相当于不存鸡蛋存母鸡,而且这只母鸡下蛋极快极快极快。。。。。

生成母鸡以及母鸡的产后护理:(廖雪峰老师,高手,这是个高手)

https://www.liaoxuefeng.com/wiki/1016959663602400/1017318207388128

廖雪峰老师的课后题

 

#--*--coding:utf-8 --*--
def triangles(): 
    result = [1]
    while True: 
	# 每次计算都记住一个list
        yield result    
        # 每次计算,都多一位0,这样 result[-1] = 0 ,便于下一列表的生产
        result.append(0)
	# 列表生成器
	# [1,2,1,0] --> [(1+0),(2+1),(1+2),(0+1)] --> [1,3,3,1]
        result=[result[i]+result[i-1] for i in range(len(result))]


results = []
n=0
for t in triangles():
    print(t)
    results.append(t)
    n = n + 1
    if n == 10:
        break

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值