Python - 列表切片


在這篇文章中,我們將學習變數列表切片。如你所知,列表切片是 Python 中非常有用且強大的功能,我們可以使用它快速切出任何列表的一些特定部分。Python 為我們提供了各種技術和方法來根據一些特定標準或模式進行切片和提取元素。

舉個例子來理解一下 -

list number: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]

我們有一些隨機數字的列表,假設我們想從列表中從索引 8 切片到列表的末尾,那麼輸出將如下所示 -

Sliced list number: [9, 10, 33, 34, 56, 43, 67]

讓我們看看可以使用哪些不同的方法來執行此任務。

方法 1:基本切片技術

在基本的列表切片技術中,我們使用簡單的 Python 語法,即 list[start:end:step]。這可以從起始索引到結束索引提取任何列表的某些部分,並帶有任何給定的步長值(可選)。這是一個示例

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = num[2:15:2]

print("Original list number: ", num)
print("Sliced list number : ", sliced_number)  

輸出

Original list number: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
Sliced list number : [3, 5, 7, 9, 33, 56, 67]

解釋

在上面的示例中,我們從索引 2 切片到索引 15(不包括),並以 2 為步長移動。

方法 2:使用列表推導式

在這裡,我們將使用列表推導式技術,並且在切片列表時也將指定一些條件。讓我們用一個例子來看看。

示例

number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = [num for num in number[2:9] if num % 2 == 0]

print("Original list number: ", number)
print("Sliced list number : ", sliced_number)

輸出

Original list number: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67] 
Sliced list number : [4, 6, 8]

解釋

在上面的示例中,我們使用列表推導式技術從索引 2 到 9 切片列表。我們有一個名為 number 的列表。我們使用 num%2==0 作為條件,它將過濾可以被元素 2 整除的值。所以我們的最終輸出將是 [4, 6, 8],因為它的元素可以被 2 整除。

方法 3:從開頭切片

在這種方法中,我們將從開頭切片列表,而無需指定起始索引,我們也可以省略起始值。

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = num[:6]

print("Original list number: ", num)
print("Sliced list number : ", sliced_number)

輸出

Original list number: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
Sliced list number : [3, 5, 7, 9, 33, 56, 67]

解釋

在上面的示例中,我們指定數字為 6,因此它將從開頭到索引 6(包括)切片列表。如果將數字指定為 4,則它將從開頭切片前 4 個元素。

方法 4:切片到末尾

在這種方法中,我們將從列表中的任何點切片到列表的末尾,而無需指定結束索引。

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = num[8:]

print("Original list number: ", num)
print("Sliced list number : ", sliced_number)

輸出

Original list number: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
Sliced list number : [9, 10, 33, 34, 56, 43, 67]

解釋

在上面的示例中,我們從索引 8 開始切片列表,一直到末尾。因此,我們得到列表的最後 7 個數字作為輸出。如果我們指定數字為 4,那麼我們將得到列表的最後 3 個數字。

方法 5:跳過元素

在這種方法中,我們將看到如何透過指定步長值來跳過列表中的元素,使用切片可以跳過列表中的元素。

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
skipped_number_list = num[::2]

print("Original list number: ", num)
print("Skipped number list : ", skipped_number_list)

輸出

Original list number: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67] 
Skipped number list : [1, 3, 5, 7, 9, 33, 56, 67]

解釋

在上面的示例中,我們以 2 為步長切片列表,從列表中提取每個第二個元素。如果我們指定步長為 3,則它將跳過每個 2 個元素列印元素。

方法 6:負索引

在這種方法中,我們將使用負索引來切片變數列表。我們使用負索引從列表的末尾開始計數。

示例

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67]
sliced_number = num[-8:-2]

print("Original list number: ", num)
print("Sliced list number : ", sliced_number)  

輸出

Original list number: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 33, 34, 56, 43, 67] 
Sliced list number : [8, 9, 10, 33, 34, 56]

解釋

在上面的示例中,我們使用負索引來切片列表。我們指定索引為 -8,它是從末尾開始的第 8 個索引,到 -2,它是從末尾開始的第 2 個索引。因此,列表將從末尾的第 8 個元素到第 2 個元素進行切片。如果我們指定索引為 -5 到 -1,則列表將是 [33, 34, 56, 43]。

結論

因此,列表切片是我們日常程式設計中非常重要的任務。在這篇文章中,我們看到了不同的方法,例如從開頭切片、列表推導式、從末尾切片、跳過元素,它們為我們提供了不同的技術來切片列表。您可以根據需要使用其中任何一個。但是,瞭解不同的技術對於學習目的至關重要。

更新於: 2023年10月6日

400 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.