欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python生成器

程序员文章站 2022-07-09 20:52:20
生成器generator1.生成器generator只有在调用的时候才会产生数据2.只记录当前的位置3.只有__next__()方法list_file = (i * 2 for i in range(10))print(list_file) # __next__:下一个print(list_file ......

生成器generator
1.生成器generator只有在调用的时候才会产生数据
2.只记录当前的位置
3.只有__next__()方法
list_file = (i * 2 for i in range(10))
print(list_file)

# __next__:下一个
print(list_file.__next__())
print(list_file.__next__())

可以被next()函数调用并不断返回下一个值的对象称为迭代器

 

# 生成器主要是生成列表的时候节省内存
list_file = (i * 2 for i in range(10))
print(list_file)

# __next__:下一个
print(list_file.__next__())
print(list_file.__next__())

from collections import iterable

ls = []
print(isinstance(ls, iterable))
print(dir(ls))

# 斐波那契数列
def fib(max):
n, a, b = 0, 0, 1
nums = list()
while n < max:
yield b
a, b = b, a + b
n = n + 1
nums.append(a)
return 'none'


nums = fib(10)
for num in nums:
print(num)