在Python中,反序迭代列表有以下几种方法:
1. 使用内置函数 `reversed()`:
my_list = [1, 2, 3, 4, 5]
for item in reversed(my_list):
print(item)
2. 使用切片操作 `[::-1]`:
my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1]
for item in reversed_list:
print(item)
3. 使用列表的 `reverse()` 方法(这会修改原列表):
my_list = [1, 2, 3, 4, 5]
my_list.reverse()
for item in my_list:
print(item)
4. 使用 `range()` 函数生成序列的反向索引:
my_list = [1, 2, 3, 4, 5]
for i in range(len(my_list)-1, -1, -1):
print(my_list[i])
5. 自定义类实现 `__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)