Python程式:從陣列中獲取最後給定數量的元素


陣列是一種資料結構,包含許多相同資料型別的元素,每個元素都由索引標識。

[2, 4, 0, 5, 8] 

Python中的陣列

Python本身沒有表示陣列的資料結構。但是,我們可以使用列表資料結構作為陣列的替代品。在這裡,我們將使用列表作為陣列。

[10, 4, 11, 76, 99]

Python提供了一些模組來更恰當地處理陣列,例如NumPy和array模組。

在本文中,我們將瞭解從陣列中訪問最後給定數量元素的不同方法。

輸入輸出場景

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

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

從輸入陣列中訪問最後3個元素7、8、9。

Input array:
[10, 21, 54, 29, 2, 8, 1]
Output:
[29, 2, 8, 1]

從輸入陣列中檢索最後4個元素。

在下面的示例中,我們將主要使用Python的負索引和切片功能來檢索最後幾個元素。

Python中的負索引

Python也支援負索引,它只是用負號從陣列末尾計數元素,從-1開始,而不是從0開始。

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

第一個元素的索引值為-n,最後一個元素為-1。

Python中的切片

使用Python的切片功能,可以透過最短的語法訪問序列中的一組元素。

語法

sequence_object[start : end : step]
  • 起始索引:切片開始的起始索引,預設為0。

  • 結束索引:切片停止的結束索引。預設值為可迭代物件的長度。並且此值不包含在內。

使用列表

透過使用列表切片功能,我們可以訪問陣列中最後給定數量的元素。

示例

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

# creating array
lst = [1, 2, 0, 4, 2, 3, 8] 

print ("The original array is: ", lst) 
print() 

numOfItems = 4

# Get last number of elements
result = lst[-numOfItems:]
print ("The last {} number of elements are: {}".format(numOfItems, result))

輸出

The original array is:  [1, 2, 0, 4, 2, 3, 8]

The last 4 number of elements are: [4, 2, 3, 8]

使用負索引從給定陣列中訪問最後4個元素。

使用NumPy陣列

讓我們使用NumPy陣列來訪問最後給定數量的元素。

示例

在這個例子中,我們將藉助負索引值來訪問NumPy陣列的元素。

import numpy
# creating array
numpy_array = numpy.random.randint(1, 10, 5)
print ("The original array is: ", numpy_array) 
print() 
numOfItems = 2
# get the last element
result = numpy_array[-numOfItems:]
print ("The last {} number of elements are: {}".format(numOfItems, result))

輸出

The original array is:  [4 6 9 7 5]
The last 2 number of elements are: [7 5]

我們已經成功地從NumPy陣列中訪問了最後2個元素。元素7的索引為-2,元素5的索引為-1。

使用array模組

使用array()方法,我們將建立一個特定資料型別的陣列。

示例

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

import array
# creating array
arr = array.array('i', [6, 5, 8, 7])
print ("The original array is: ", arr) 
print() 
numOfItems = 2
# remove last elements
result = arr[-numOfItems:]
print ("The last {} number of elements are: {}".format(numOfItems, result))

輸出

The original array is:  array('i', [6, 5, 8, 7])
The last 2 number of elements are: array('i', [8, 7])

從上面的例子可以看出,已成功訪問所需數量的元素。如果請求的元素數量超過序列中元素的總數,Python切片不會產生任何錯誤。

更新於:2023年5月29日

83 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告