Python 用于从数组中删除最后给定数量的项目
数组是一种数据结构,用于存储相同数据类型的一组元素。数组中的每个元素都由键或索引值来标识。
Python中的数组
Python没有本地数据结构来表示数组。然而,我们可以使用列表来表示数组。
[1, 2, 3, 4, 5]
同时,我们可以使用array或NumPy模块在Python中处理数组。
array模块定义的数组是-
array('i', [1, 2, 3, 4])
由NumPy模块定义的Numpy数组是 –
array([1, 2, 3, 4])
Python的索引从0开始。上述所有数组的索引都是从0到(n-1)。
负索引
Python还支持负索引,即从数组的末尾开始计数。
[1, 2, 3, 4, 5]
-5 -4 -3 -2 -1
第一个元素由索引值-n标识,最后一个元素为-1。在下面的大多数示例中,我们将使用负索引来移除指定数量的最后几个项。
输入输出方案
假设我们有一个包含9个整数值的输入数组。输出中将根据指定的数字删除最后几个项。
Input array:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Output:
[1, 2, 3, 4, 5, 6]
最后3个项目7、8、9从输入数组中删除。
使用List
通过使用Python中的 list.pop() 方法,我们可以删除数组的最后一个元素。以下是实现此操作的语法:
list.pop(index)
pop() 方法从给定的索引位置移除一个元素,并返回被移除的元素,默认情况下它移除最后一个元素。
示例
在这个示例中,我们将遍历 for 循环直到给定的数字,并从数组中移除最后的元素。
# creating array
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print ("The original array is: ", lst)
print()
numOfItems = 4
# remove last elements
for i in range(numOfItems):
lst.pop()
print ("The result is: ", lst)
输出
The original array is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
The result is: [1, 2, 3, 4, 5, 6]
最后4个元素7、8、9、10从数组中删除。
示例
让我们举一个示例,应用列表切片从数组中删除最后一个元素。
# creating array
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print ("The original array is: ", lst)
print()
numOfItems = 4
# remove last elements
result = lst[:-numOfItems]
print ("The result is: ", result)
输出
The original array is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
The result is: [1, 2, 3, 4, 5, 6]
通过使用列表负索引和切片技巧,我们从给定数组中删除了最后4个项。这里原始的数组列表不会受影响,它保持不变。
使用NumPy数组
通过使用numpy模块和切片技巧,我们可以轻松地从数组中删除多个项。下面是语法 –
Numpy_array_obj[start:stop:step]
示例
让我们取一个NumPy数组,并移除最后两个元素。
import numpy
# creating array
numpy_array = numpy.random.randint(1, 10, 5)
print ("The original array is: ", numpy_array)
print()
numOfItems = 2
# remove last elements
result = numpy_array[:-numOfItems]
print ("The result is: ", result)
输出
The original array is: [1 7 9 4 9]
The result is: [6 6 3]
我们使用负索引成功地从numpy数组中删除了最后2个元素。
使用array模块
python的array模块也支持数组索引和切片技术来访问元素。
示例
在这个示例中,我们将使用array模块创建一个数组。
import array
# creating array
arr = array.array('i', [2, 4, 6, 8, 10])
print ("The original array is: ", arr)
print()
numOfItems = 2
# remove last elements
result = arr[:-numOfItems]
print ("The result is: ", result)
输出
The original array is: array('i', [2, 4, 6, 8, 10])
The result is: array('i', [2, 4, 6])
数组中的最后2个元素已被移除。