1.反向迭代
- 目标:反向迭代一个序列
- 解决方法:使用内置的reversed()函数(要求对象的的大小预先确定或者该对象实现了__reversed__()方法才可以)
-
a = [1,2,3,4,5,6] for i in reversed(a): print(i) """输出结果 6 5 4 3 2 1 """
ps:我们可以通过在自定义的类上实现__reversed__()方法实现反向迭代。
-
例如我们生成如下一个倒计时函数:
-
class countDown(): def __init__(self,start=1): self.start = start def __iter__(self): n = self.start while(n>0): yield n n-=1 def __reversed__(self): n = 1 while(n<self.start): yield n n+=1 '''输出10,9,8,7,6,5,4,3,2,1''' for i in countDown(10): print(i) '''输出1,2,3,4,5,6,7,8,9,10''' for i in reversed(countDown(10)): print(i)