第八节 迭代器的运用

 1 from collections.abc import Iterable
 2 
 3 '''
 4 迭代器的作用,通过迭代器生成需要的数据,而不是事先放进一个列表里存储,节省大量内存空间
 5 '''
 6 
 7 # 比如想要从1到1000的数字,不是提前准备一个列表,而是需要的时候临时用xrange(1000)生成
 8 # xrange he range 已经合并了,现在range已经是一个迭代器了
 9 a = range(10)
10 # help(a)
11 
12 '''
13 斐波那契数列的for循环实现
14 '''
15 # b = 0
16 # c = 1
17 # for x in range(20):
18 #     print(b, end=' ')
19 #     b, c = c, c + b
20 
21 '''
22 用类实现
23 '''
24 class Fobonaqi(object):
25 
26     def __init__(self, all_num):
27         self.a = 0
28         self.b = 1
29         self.all_num = all_num
30         self.c = 0
31 
32     def __iter__(self):
33         return self
34 
35     def __next__(self):
36         if self.c <= self.all_num:
37             ret = self.a
38             self.a ,self.b = self.b, self.a + self.b
39             self.c += 1
40             return ret
41         else:
42             raise StopIteration
43 feibo = Fobonaqi(20)
44 f = list(feibo)  #list先生成一个空列表,然后去feibo里面找—__iter__,再去调用__next__方法将数据一个个放进空列表中
45 print(a)
46 
47 for x in f:
48     print(x)
原文地址:https://www.cnblogs.com/kogmaw/p/12575497.html