python学习,day4:生成器
1、生成器:只有在调用是才会生成相应的数据。(比较省内存,它只保留当时生成的。而列表会保存整个列表)
1 a = [i*2 for i in range(10)] #列表生成式
2 print(a)
这样会把整个列表都生成出来
2、而生成器不会,只记录当前的位置
1 b =(i*2 for i in range(10000)) #生成器 2 for i in b: #只显示当前的,之前之后的都不会保留在内存中 3 print(i)
3、只有一个__next__()方法,读取下一个
1 b =(i*2 for i in range(10000)) 2 print(i) 3 print(b.__next__())