Python 向后迭代列表
Niket Gandhir
2023年10月10日
本教程将讨论可用于在 Python 中以相反顺序遍历列表的各种方法。
在 Python 中使用 reversed()
函数以相反的顺序遍历列表
我们可以使用内置的 reversed()
函数以相反的顺序遍历 Python 中的列表。reversed()
函数返回作为输入提供的序列的反向迭代。
reversed()
函数接受单个参数,即要反转的序列。序列可以是元组、字符串、列表、范围等。
例如,
x = ["my", "unlimited", "sadness"]
for i in reversed(x):
print(i)
输出:
my
sadness
unlimited
然而,为了访问序列的原始索引,我们可以在将列表传递给 reversed()
函数之前,进一步使用列表中的 enumerate()
函数。
请参考以下代码。
x = ["my", "unlimited", "sadness"]
for i, e in reversed(list(enumerate(x))):
print(i, e)
输出:
2 sadness
1 unlimited
0 my
因此,我们使用序列的原始索引获得输出。然而,值得注意的是 enumerate()
返回一个生成器,并且生成器不能反转。因此,首先将其转换为列表至关重要。
在 Python 中使用 range()
函数以相反的顺序遍历列表
在 Python 中以相反顺序遍历序列的另一种方法是使用可用的 range
函数。
Python 中可用的 range
函数返回一个数字序列,默认情况下从 0 开始,自动增加 1(默认情况下)。
range
函数接受三个不同的参数 - start
(可选)、stop
(必需)、step
(可选)。所有三个参数都接受一个整数作为输入。
请参考以下代码。
x = ["my", "unlimited", "sadness"]
for i in range(len(x) - 1, -1, -1):
print(i, x[i])
输出:
3 sadness
2 unlimited
1 my
因此,如上所示,我们可以使用序列的原始索引以相反的顺序遍历序列。
在 Python 中使用 for
循环以相反顺序遍历列表
我们可以使用 for
循环在 Python 中以相反的顺序遍历列表。它迭代一个序列,可以是列表、元组、字符串等。
我们可以用它以相反的顺序遍历一个列表,如下所示。
x = ["my", "unlimited", "sadness"]
for item in x[::-1]:
print(item)
输出:
sadness
unlimited
my
请注意,上面代码中的 [::-1]
仅对循环进行反向切片。因此,它不会改变或修改永久提供的数据数组或列表。