Python 向后迭代列表

Niket Gandhir 2023年1月30日 2021年7月12日
  1. 在 Python 中使用 reversed() 函数以相反的顺序遍历列表
  2. 在 Python 中使用 range() 函数以相反的顺序遍历列表
  3. 在 Python 中使用 for 循环以相反顺序遍历列表
Python 向后迭代列表

本教程将讨论可用于在 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] 仅对循环进行反向切片。因此,它不会改变或修改永久提供的数据数组或列表。

相关文章 - Python List