python生成器

生成器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)
点赞