Python程式移除陣列中最後指定數量的元素


陣列是一種資料結構,用於儲存一組相同資料型別的元素。陣列中的每個元素都由鍵或索引值標識。

Python中的陣列

Python沒有原生資料結構來表示陣列。但是,我們可以使用列表來表示陣列。

[1, 2, 3, 4, 5]

我們也可以使用array或NumPy模組來處理Python中的陣列。

由array模組定義的陣列為:

array('i', [1, 2, 3, 4])

由NumPy模組定義的NumPy陣列為:

array([1, 2, 3, 4])

Python索引從0開始。上面所有陣列的索引從0到(n-1)。

負索引

Python也支援負索引,它表示從陣列的末尾開始計數。

[1, 2, 3, 4, 5]
-5 -4 -3 -2 -1

第一個元素由索引值-n標識,最後一個元素為-1。在下面大多數示例中,我們將使用負索引來移除最後指定數量的元素。

輸入輸出場景

假設我們有一個包含9個整數值的輸入陣列。在輸出中,將根據指定的數量移除最後的幾個元素。

Input array:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Output:
[1, 2, 3, 4, 5, 6]

從輸入陣列中移除最後的3個元素7、8、9。

使用列表

透過使用Python的list.pop()方法,我們可以移除陣列的最後一個元素。以下是執行此操作的語法:

list.pop(index)

pop()方法從給定索引中移除一個元素並返回被移除的元素,預設情況下它移除最後一個元素。

示例

在這個示例中,我們將迭代for迴圈直到給定的數字,然後從陣列中移除最後的元素。

# creating array
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
print ("The original array is: ", lst) 
print() 

numOfItems = 4
# remove last elements
for i in range(numOfItems):
    lst.pop()
print ("The result is: ", lst) 

輸出

The original array is:  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
The result is:  [1, 2, 3, 4, 5, 6]

從陣列中移除最後的4個元素7、8、9、10。

示例

讓我們舉個例子,並應用列表切片來移除陣列中的最後一個元素。

# creating array
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
print ("The original array is: ", lst) 
print() 

numOfItems = 4
# remove last elements
result = lst[:-numOfItems]
print ("The result is: ", result)

輸出

The original array is:  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
The result is:  [1, 2, 3, 4, 5, 6]

透過使用列表負索引和切片技術,我們已經從給定陣列中移除了最後的4個元素。這裡原始陣列列表不會受到影響,保持不變。

使用NumPy陣列

透過使用numpy模組和切片技術,我們可以輕鬆地從陣列中移除指定數量的元素。以下是語法:

Numpy_array_obj[start:stop:step]

示例

讓我們取一個NumPy陣列並移除最後的2個元素。

import numpy

# creating array
numpy_array = numpy.random.randint(1, 10, 5)
print ("The original array is: ", numpy_array) 
print() 

numOfItems = 2

# remove last elements
result = numpy_array[:-numOfItems]
print ("The result is: ", result) 

輸出

The original array is:  [1 7 9 4 9]
The result is:  [6 6 3]

我們已經成功地使用負索引從numpy陣列中移除了最後的2個元素。

使用array模組

Python array模組也支援陣列索引和切片技術來訪問元素。

示例

在這個示例中,我們將使用array模組建立一個數組。

import array
# creating array
arr = array.array('i', [2, 4, 6, 8, 10])
print ("The original array is: ", arr) 
print() 
numOfItems = 2
# remove last elements
result = arr[:-numOfItems]
print ("The result is: ", result) 

輸出

The original array is:  array('i', [2, 4, 6, 8, 10])
The result is:  array('i', [2, 4, 6])

從陣列中移除最後的2個元素。

更新於: 2023年5月29日

102次檢視

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.