Python生成器是一种特殊的迭代器,它可以在需要时动态地生成值。Python生成器的主要优点是可以减少内存占用,因为它只在需要时生成值,并且可以一次生成一个值,而不是一次生成所有值。
生成器是由yield语句定义的函数。yield语句可以返回一个值,并暂停函数的执行,直到下一次迭代开始。在下一次迭代开始时,函数将从yield语句暂停的位置继续执行。
def my_gen():
num = 0
while num < 10:
yield "No." + str(num)
num += 1
for i in my_gen():
print(i)
def read_file(filename):
"""
读取文件
:param filename: 文件名
:return: 一次返回一行
"""
with open(filename, 'r') as f:
for c in f:
yield c.strip()
# 使用生成器读取文件
for line in read_file("server.txt"):
print(line)
server.txt内容如下
a
1
b
2
c
3
上面写了两个案例,一个是模拟序列生成,每次取都加一,二是模拟文件逐行读取
运行结果
No.0
No.1
No.2
No.3
No.4
No.5
No.6
No.7
No.8
No.9
a
1
b
2
c
3
Python生成器是一种非常有用的特性,它可以帮助开发人员高效地处理大数据集、进行延迟计算和生成无限序列。在日常开发中,使用Python生成器可以减少内存占用和计算时间,从而提高代码的性能和可读性。
欢迎关注,学习不迷路!