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 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告