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切片不會產生任何錯誤。
廣告