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]
- start:可迭代对象切片开始的索引。默认为0。
-
end:列表切片停止的结束索引。默认值为可迭代对象的长度。这个值是排除在外的。
使用列表
通过使用列表切片功能,我们可以从数组中访问最后给定的几个元素。
示例
让我们举一个示例,并应用列表切片来访问数组的最后几个元素。
# 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数组中访问了最后两个元素。元素 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切片不会生成任何错误。