python生成器
2021-06-10 21:02
标签:code while 代码执行 while语句 函数 暂停 数列 col current 根据程序员制定的规则循环生成数据,当条件不成立时则生成数据结束。数据不是一次性全部生成处理,而是使用一个,再生成一个,可以节约大量的内存。 两种方式创建生成器 执行结果: 说明: 执行结果: 说明: 执行结果: python生成器 标签:code while 代码执行 while语句 函数 暂停 数列 col current 原文地址:https://www.cnblogs.com/liuxuelin/p/14249019.html1.生成器
2.生成器推导式方式创建生成器:
# 创建生成器
my_generator = (i * 2 for i in range(5))
print(my_generator)
# next获取生成器下一个值
# value = next(my_generator)
# print(value)
# 遍历生成器
for value in my_generator:
print(value)
3. yield 关键字创建生成器:
def my_g():
for i in range(3):
yield i
for i in my_g():
print(i)
0
1
2
Process finished with exit code 0
4.斐波拉契数列(Fibonacci),使用生成器生成
def fibonacci(num):
a = 0
b = 1
# 记录生成fibonacci数字的下标
current_index = 0
while current_index num:
result = a
a, b = b, a + b
current_index += 1
# 代码执行到yield会暂停,然后把结果返回出去,下次启动生成器会在暂停的位置继续往下执行
yield result
fib = fibonacci(5)
# 遍历生成的数据
for value in fib:
print(value)
0
1
1
2
3
Process finished with exit code 0