1. 程式人生 > >python-8-如何進行反向迭代以及如何實現反向迭代?

python-8-如何進行反向迭代以及如何實現反向迭代?

這裡寫圖片描述

l = [1,2,3,4,5]
l.reverse()
print(l)

reverse()對列表的元素進行反向排序。
改變了原列表,從某種情形是不允許的

l = [1,2,3,4,5]
print(l[::-1])

切片返回的陣列和原陣列同樣大小,浪費資源。
推薦使用自帶函式reversed(l),其將得到列表的反向迭代器,reversed實際上呼叫的是reversed方法
PS:iter(l)得到的是正向迭代器,iter實際上呼叫的是iter方法
這裡寫圖片描述

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 FloatRange(1.0,4.0,0.5): print(x) for x in reversed(FloatRange(1.0,4.0,0.5)): print(x)