迭代器和生成器
1、迭代器
特点:
- 访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容
- 不能随机访问集合中的某个值 ,只能从头到尾依次访问
- 访问到一半时不能往回退
- 便于循环比较大的数据集合,节省内存
1 x = [11,22,33,44,55] 2 3 for i in iter(x): 4 print(i)
2、生成器
一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator);如果函数中包含yield语法,那这个函数就会变成生成器;
1 def xrange(n): 2 start = 0 3 while True: 4 if start > n: 5 return 6 yield start 7 start += 1 8 9 obj = xrange(5) 10 n1 = obj.__next__() 11 n2 = obj.__next__() 12 n3 = obj.__next__() 13 n4 = obj.__next__() 14 n5 = obj.__next__() 15 n6 = obj.__next__() 16 print(n1,n2,n3,n4,n5,n6)