如何使用 Python 反轉列表或數組
反轉列表或數組是一項常見的編程任務。在許多情況下,你可能需要以相反的順序呈現數據,例如在對列表進行排序時。
如何使用 Python 反轉列表或數組?你將在本文中了解不同的方法。
使用 for 循環創建副本
雖然Python 的 for 循環更冗長,但在某些情況下它可能很方便。例如,在反向操作的某些點執行復雜邏輯時,它提供了更大的靈活性。
相關:如何在Python中使用For循環 https://www.linuxmi.com/python-for-loops.html
當使用縮進的 for循環時,常用的方法是以相反的順序遍歷原始列表。從最后一個元素開始,每次迭代都將前一個元素附加到一個新列表中。
以 1 到 9 之間的整數列表為例,以下是使用縮進的for循環反轉數組的方法:
languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 創建一個空列表來保存反向數組:
reversed_list = []
# 從原始數組的長度中減去一,以從最后一個索引開始:
reducer = len(languages)-1
# 在for循環中反轉列表:
for i in languages:
reversed_list.append(languages[reducer]) # 將結果追加到空列表
reducer -=1 # 使用reducer在每次迭代時將索引減少1
print(reversed_list)
輸出:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
使用列表推導式反轉列表或數組
列表推導產生更短的代碼。并且不需要臨時變量,因為列表理解作用于適當的列表。
要執行前面的操作,使用列表推導:
reducer = len(languages)
# 在列表推導式中,使用for循環在范圍函數中遞減索引
Reversed_list = [languages[reducer] for reducer in range(reducer -1,-1,-1)]
print(Reversed_list)
輸出:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
使用切片運算符
列表切片運算符非常簡單,盡管它有一些限制。例如,你可能無法像使用for循環時那樣自定義輸出。
以下是使用切片運算符反轉列表的方法:
languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rev_list = languages[::-1]
print(rev_list)
輸出:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[ ::-1]語法是一個巧妙的快捷方式,它會產生一個反向列表。它實際上意味著“復制列表的每個元素,從末尾開始倒數”——即“反轉它”!
使用數組的反轉方法
這是另一種有效的方法:它修改原始數組。這可能是一個缺點,因為你不能為其他操作保留先前的列表。
以下是使用 reverse 方法反轉數組的方法:
languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
languages.reverse()
print(languages)
輸出:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
使用反轉reversed函數
reversed 函數遍歷列表、數組或任何其他序列并返回其反向副本。但是,你需要將反向輸出顯式聲明為列表。
這是它的工作原理:
languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(reversed(languages)))
輸出:
[9, 8, 7, 6, 5, 4, 3, 2, 1]
使用數組獲得創意
數組或列表是存儲數據的常用方法。根據你的目標,你可能希望以相反的順序將數據呈現給客戶端。一種方法是在渲染之前反轉數組或列表。如你所見,有幾種方法可以在 Python 中反轉列表。選擇最適合你并與你針對特定問題的邏輯保持一致的方法。