python中的生成器generator、yield
一、什么是生成器,他的作用是什么
在Python中,生成器(Generator)是一种特殊类型的函数,它可以用于迭代(iteration)操作。
生成器函数使用关键字yield而不是return来返回值,这使得它能够在每次迭代时产生一个值,并在下一次迭代时继续执行。生成器在每次迭代中只计算并返回一个值,这样可以有效地节省内存空间。
生成器函数的结构类似于普通函数,但其特点是在执行过程中会暂停并保存当前的状态,等待下一次迭代时继续执行。生成器可以通过yield语句返回一个值,并且可以使用for循环或者next()函数来迭代生成器中的值。
二、创建生成器的方式
- 通过 生成器表达式
- 通过 生成器函数
1、通过生成器表达式
# 生成器表达式 generator = (x * x for x in range(5)) print(generator) for i in generator: # 通过 for循环迭代生成器 print(i) # 请区分列表表达式语句 theList = [x * x for x in range(5)] print(theList)
运行结果如下:

2、通过生成器函数
# 定义一个生成器函数 def square_numbers(nums: list[int]): for i in nums: yield i * i nums = [1,2,3,4,5] new_nums = square_numbers(nums) print(new_nums) print(type(new_nums)) print(list(new_nums)) # 将生成器转换为列表
运行结果:

通过next迭代生成器
# 定义一个生成器函数 def square_numbers(nums: list[int]): for i in nums: yield i * i nums = [1,2,3,4,5] new_nums = square_numbers(nums) print(next(new_nums)) print(next(new_nums)) print(next(new_nums)) print(next(new_nums)) print(next(new_nums)) print(next(new_nums))
运行结果

    博客里大都是转载的内容,其目的主要用户知识的组织和管理。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号