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