Python高级编程笔记-----生成器(generator)

生成器(generator)

基本解释

如同字面意思,就是不断的生成一个数据,类似于列表生成式,但列表是一开始就给定的,而生成器你不用next()调用下一个数据,你就不知道下一个数据是什么
这样不必创建完整的list,从而节省大量的空间

展现形式
  1. 通过将列表生成式的[]替换成()
  2. 编写生成器函数,使用yield关键字
    !!!调用generator函数会创建一个generator对象,多次调用generator函数会创建多个相互独立的generator
代码实现
import copy
# 杨辉三角

def triangles(num: int):
    l0 = l1 = []
    for n in range(num):
        l1.clear()
        for k in range(n + 1):
            if k == 0 or k == n:
                l1.append(1)
            else:
                l1.append(l0[k - 1] + l0[k])
        l0 = copy.deepcopy(l1)
        yield l1


for i in triangles(6):
    print(i)

通过生成器函数来返回一个生成器,然后用for循环或者next()来调用它

参考文献:廖雪峰的官方网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值