在Python中,數組切片是一個非常強大的工具,幾乎在每個Python程序中都能看到。數組切片可以讓我們快速地對數組進行分段、排序、篩選、選取等操作,非常方便。本文將針對Python數組切片這一主題進行全面的解析,從基礎的倒序輸出到高級的多維數組切片,為讀者深度解讀數組切片的秘密。
一、Python數組切片倒序輸出
倒序輸出一個數組是非常常見的需求,可以使用slice(切片)來完成這個操作,代碼如下:
a = [1, 2, 3, 4, 5] b = a[::-1] print(b)
這裡的『:-1』表示從倒數第一個元素開始,到第一個元素結束,每隔1個元素取一個元素。也就是說,這個切片操作把整個數組逆序了。
此外,Python還提供了reversed(反轉)函數,可以對一個數組進行倒序輸出。代碼如下:
a = [1, 2, 3, 4, 5] b = list(reversed(a)) print(b)
這個方法和切片相反,直接返回一個逆序的數組。
二、Python數組切片分段
Python數組切片還可以按照一定的規則把數組分成幾段,比如把一個數組分成3段,代碼如下:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9] b = [a[i:i+3] for i in range(0, len(a), 3)] print(b)
這裡的『i:i+3』表示從第i個元素開始,索引到第i+3個元素,取這個區間的值。然後使用for循環,從第0個元素開始,每隔3個元素進行切片,最後得到一個分成3段的數組。
除了按照固定大小分段,我們還可以按照一定的規則來拆分一個數組,代碼如下:
a = "1:2:3:4:5" b = a.split(':') print(b)
這裡的』split』函數將字元串a按照』:』進行拆分,返回一個列表。
三、Python數組切片不改變原數組
Python中數組切片操作可以不改變原來的數組,可以使用copy()來完成,代碼如下:
a = [1, 2, 3, 4, 5, 6] b = a.copy()[2:5] print(b)
這裡的『copy()』函數會返回原數組的一份副本,不對原數組進行修改。
四、Python數組切片步長為0
當使用』:』時,可以設置步長為0,這樣就可以獲取整個數組的複製,代碼如下:
a = [1, 2, 3, 4, 5] b = a[:] print(b)
這裡的『:』表示從第1個元素開始,到數組的最後1個元素結束,每隔一個元素取一個元素,相當於獲取了整個數組的複製。
五、Python數組切片操作
Python數組切片可以進行多種操作,比如插入、刪除、替換等,代碼如下:
a = [1, 2, 3, 4, 5] a[1:1] = [6, 7] print(a) a[2:4] = [8] print(a) del a[0:2] print(a)
這裡的切片操作可以實現對數組的替換,插入和刪除操作。
六、Python數組切片索引
Python數組切片的索引可以在切片操作中使用,代碼如下:
a = [1, 2, 3, 4, 5] b = [0, 1, 2, 3] print(a[b])
這裡的』b』是一個索引數組,表示從原數組中選取』b』中索引對應的元素,最後得到一個新的數組。
七、Python數組切片長度不一樣
當切片長度不一樣時,我們可以使用zip(壓縮)函數來對多個切片進行處理,代碼如下:
a = [1, 2, 3, 4, 5] b = a[::2] c = a[1::2] print(list(zip(b, c)))
這裡的』zip』函數把』b』和』c』兩個數組依次組成元組,最後返回一個元組的列表。
八、Python二維數組切片
Python中二維數組的切片使用類似於一維數組的切片操作,代碼如下:
a = [[1,2,3],[4,5,6],[7,8,9]] b = a[0:2][0:2] print(b)
這裡的切片先選取第1個和第2個元素,然後再選取這兩個元素的前兩個元素,最後得到一個2*2的二維數組。
九、Python切片的三種方法
Python中有三種方法可以對數組進行切片,分別是基於索引切片、基於步長切片和基於隨機元素切片。
基於索引切片:
a = [1, 2, 3, 4, 5] b = a[1:3] print(b)
這裡的『1:3』表示從第1個元素開始,到第3個元素結束,取這個區間的值。這是最常見的切片方法。
基於步長切片:
a = [1, 2, 3, 4, 5] b = a[::2] print(b)
這裡的『::2』表示從第1個元素開始,到數組的最後1個元素結束,每隔一個元素取一個元素。
基於隨機元素切片:
import random a = [1, 2, 3, 4, 5] indexes = random.sample(range(len(a)), 3) b = [a[i] for i in indexes] print(b)
這裡的』random.sample』函數可以從指定的範圍內隨機選擇指定數量的元素,此時的切片實際上是隨機選取某幾個元素組成新的數組。
十、結語
Python數組切片是Python中常用的操作之一,它的強大、靈活和易用性都讓它成為了Python程序員必備的利器。本文從多個方面對數組切片進行了詳細的解析,希望讀者可以從中深入了解數組切片的各種用法和技巧,更好地應用它來完成編程任務。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270681.html