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