li = [1,2,3,4,5,6] #li.reverse() 会改变原有列表 li[::-1] 所谓的切边操作 但是会产生一个相同大小的列表 浪费空间
#推荐使用内置函数reversed
reversed(li) 会得到一个列表的反向迭代器
for x in reversed(li):
print x #6,5,4,3,2,1
注意iter(li) 实现的是li.__iter__ 方法 而reversed(li) 其实调用的是li.__reversed__构造方法
class FloatRange:
def __init__(self, start, end, step=0.1):
self.start = start
self.end = end
self.step = step
def __iter__(self):
t = self.start
while t <= self.end:
yield t
t += self.step
def __reversed__(self):
t = self.end
while t >= self.start:
yield t
t -= self.step
for x in reversed(FloatRange(1.0, 4.0, 0.5)):
print x
如何进行反向迭代以及如何实现反向迭代
最新推荐文章于 2024-09-04 10:31:20 发布