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切片不会产生任何错误。
广告