Python生成器generator

"""
生成器(generator):
    生成器的本质就是迭代器
    
    创建生成器的两种方案:
        1、生成器函数
        2、生成器表达式

    生成器函数:
        生成器函数中有一个关键字yield
        生成器函数执行的时候,并不会执行函数,得到的是生成器

        yield:只要函数中出现了yield,它就是一个生成器函数
            作用:
                1、可以返回数据
                2、可以分段的执行函数中的内容,通过__next__()可以执行到下一个yield位置
            优势:
                用好了,特别节省内存

    生成器表达式 -> 一次性的
        语法:(数据 for循环 if)
"""

# 订衣服示例
def order():
    lst = []
    for i in range(10000):
        lst.append(f"衣服{i}")
    return lst

lst = order()
print(lst)

# 生成器
def order():
    lst = []
    for i in range(10000):
        lst.append(f"衣服{i}")
        if len(lst) == 50:
        yield lst
        # 下一次拿数据
        lst = []

gen = order()
print(gen.__next__())
print(gen.__next__())

# 生成器表达式
gen = (i**2 for i in range(10))
print(gen.__next__())
print(gen.__next__())

for item in gen:
    print(item)

# 生成列表
lst = list(gen) # list() => for => next()
print(lst)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值