"""
生成器(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)
Python生成器generator
于 2024-05-31 16:31:45 首次发布