Python程式獲取陣列中指定索引範圍內的子陣列
陣列是一種同構資料結構,用於儲存一組相同資料型別的元素。陣列中的每個元素都由鍵或索引值標識。
子陣列
子陣列定義為陣列中連續元素的一小部分。如果我們取一個包含5個整數元素的陣列,如下所示。
[9, 3, 1, 6, 9]
那麼子陣列將是 -
[9, 3] [9, 3, 1] [3, 1, 6, 9]
Python中的陣列
在Python中,我們沒有特定的資料結構來表示陣列。但是,我們可以使用列表來表示陣列。
[1, 2, 3, 4, 5]
我們還可以使用array或NumPy模組在python中處理陣列。
由array模組定義的陣列。
array('i', [1, 2, 3, 4])
由NumPy模組定義的NumPy陣列。
array([1, 2, 3, 4])
以上所有陣列都從索引0開始到(n-1)結束。
在本文中,我們將看到多種方法,使用指定的索引範圍從陣列中獲取子陣列。
輸入輸出場景
假設我們有一個包含9個整數值的輸入陣列。輸出將是從索引1到4的子陣列。
Input array: [1, 2, 3, 4, 5, 6, 7, 8, 9] Output: [2, 3, 4]
主要我們將使用python的切片功能從陣列中獲取子陣列。切片用於選擇可迭代物件的一系列項。
語法
iterable_obj[start:stop:step]
使用列表切片
我們可以使用列表切片來獲取子陣列。以下是執行此操作的語法 -
list_object[start : end : step]
其中,
開始 − 列表切片開始的起始索引。預設值為0。
結束 − 列表切片停止的結束索引。請注意,此索引的值不屬於最終結果的一部分。預設值為可迭代物件長度。
步長 − 預設值為1。起始索引的增量。
示例
從以下示例中,我們可以看到一個數組和兩個索引arr[1:7],用於從這些位置選擇子陣列。
# creating array
arr = [2, 5, 6, 7, 1, 9, 2, 0]
print ("The original array is: ", arr)
print()
# get the subarray
result = arr[1:7]
print ("The subarray is: ", result)
輸出
The original array is: [2, 5, 6, 7, 1, 9, 2, 0] The subarray is: [5, 6, 7, 1, 9, 2]
使用NumPy陣列
在NumPy陣列中,切片允許我們指定一系列索引,以從更大的陣列中獲取子陣列。NumPy陣列元素也像python列表一樣進行索引。第一個元素的索引為0,最後一個元素的索引為n-1。
語法
numpyArray[start : end]
其中,
開始 − 陣列切片開始的起始索引。
結束 − 陣列切片停止的結束索引。
示例
以下是一個例子 -
import numpy as np
# creating array
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print ("The original array is: ", arr)
print()
# get the subarray
result = arr[1:4]
print ("The subarray is: ", result)
輸出
The original array is: [1, 2, 3, 4, 5, 6, 7, 8, 9] The subarray is: [2, 3, 4]
我們成功地獲取了一個子陣列,從第1個索引開始到第4個索引(不包括最後一個第4個索引)。
使用Array模組
python array模組也支援陣列切片,因此我們可以輕鬆地從大陣列中獲取子陣列。以下是語法 -
語法
array[start : end]
其中,
開始 − 陣列切片開始的起始索引。
結束 − 陣列切片停止的結束索引。
示例
在下面的示例中,我們成功地使用python array模組及其切片技術從索引1-8獲取了子陣列。
import array
# creating array
arr = array.array('i',[1, 2, 3, 4, 5, 6, 7, 8, 9])
print ("The original array is: ", arr)
print()
# get the subarray
result = arr[1:8]
print ("The subarray is: ", result)
輸出
The original array is: array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9])
The subarray is: array('i', [2, 3, 4, 5, 6, 7, 8])
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP