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]
僅對迴圈進行反向切片。因此,它不會改變或修改永久提供的資料陣列或列表。