Python程序获取数组中指定索引范围内的子数组
数组是一种同构数据结构,用于存储一组相同数据类型的元素。数组中的每个元素都由键或索引值标识。
子数组
子数组定义为数组中连续元素的一小部分。如果我们取一个包含5个整数元素的数组,如下所示。
[9, 3, 1, 6, 9]
那么子数组将是 -
[9, 3] [9, 3, 1] [3, 1, 6, 9]
Python中的数组
在Python中,我们没有特定的数据结构来表示数组。但是,我们可以使用列表来表示数组。
[1, 2, 3, 4, 5]
我们还可以使用array或NumPy模块在python中处理数组。
由array模块定义的数组。
array('i', [1, 2, 3, 4])
由NumPy模块定义的NumPy数组。
array([1, 2, 3, 4])
以上所有数组都从索引0开始到(n-1)结束。
在本文中,我们将看到多种方法,使用指定的索引范围从数组中获取子数组。
输入输出场景
假设我们有一个包含9个整数值的输入数组。输出将是从索引1到4的子数组。
Input array: [1, 2, 3, 4, 5, 6, 7, 8, 9] Output: [2, 3, 4]
主要我们将使用python的切片功能从数组中获取子数组。切片用于选择可迭代对象的一系列项。
语法
iterable_obj[start:stop:step]
使用列表切片
我们可以使用列表切片来获取子数组。以下是执行此操作的语法 -
list_object[start : end : step]
其中,
开始 − 列表切片开始的起始索引。默认值为0。
结束 − 列表切片停止的结束索引。请注意,此索引的值不属于最终结果的一部分。默认值为可迭代对象长度。
步长 − 默认值为1。起始索引的增量。
示例
从以下示例中,我们可以看到一个数组和两个索引arr[1:7],用于从这些位置选择子数组。
# creating array
arr = [2, 5, 6, 7, 1, 9, 2, 0]
print ("The original array is: ", arr)
print()
# get the subarray
result = arr[1:7]
print ("The subarray is: ", result)
输出
The original array is: [2, 5, 6, 7, 1, 9, 2, 0] The subarray is: [5, 6, 7, 1, 9, 2]
使用NumPy数组
在NumPy数组中,切片允许我们指定一系列索引,以从更大的数组中获取子数组。NumPy数组元素也像python列表一样进行索引。第一个元素的索引为0,最后一个元素的索引为n-1。
语法
numpyArray[start : end]
其中,
开始 − 数组切片开始的起始索引。
结束 − 数组切片停止的结束索引。
示例
以下是一个例子 -
import numpy as np
# creating array
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print ("The original array is: ", arr)
print()
# get the subarray
result = arr[1:4]
print ("The subarray is: ", result)
输出
The original array is: [1, 2, 3, 4, 5, 6, 7, 8, 9] The subarray is: [2, 3, 4]
我们成功地获取了一个子数组,从第1个索引开始到第4个索引(不包括最后一个第4个索引)。
使用Array模块
python array模块也支持数组切片,因此我们可以轻松地从大数组中获取子数组。以下是语法 -
语法
array[start : end]
其中,
开始 − 数组切片开始的起始索引。
结束 − 数组切片停止的结束索引。
示例
在下面的示例中,我们成功地使用python array模块及其切片技术从索引1-8获取了子数组。
import array
# creating array
arr = array.array('i',[1, 2, 3, 4, 5, 6, 7, 8, 9])
print ("The original array is: ", arr)
print()
# get the subarray
result = arr[1:8]
print ("The subarray is: ", result)
输出
The original array is: array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9])
The subarray is: array('i', [2, 3, 4, 5, 6, 7, 8])
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP