python_迭代器和生成器

迭代器和生成器

1、迭代器

特点:

  1. 访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容
  2. 不能随机访问集合中的某个值 ,只能从头到尾依次访问
  3. 访问到一半时不能往回退
  4. 便于循环比较大的数据集合,节省内存
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)
原文地址:https://www.cnblogs.com/yinjia/p/8605656.html