Python 程序查找数组中指定项的第一次出现的索引
数组是一种数据结构,用于按顺序存储相同数据类型的元素。存储的元素由索引值标识。Python 没有特定的数据结构来表示数组。但是,我们可以使用 List 数据结构或 Numpy 模块来处理数组。
在本文中,我们看到了多种方法来获取数组中指定项的第一次出现的索引。
输入输出场景
现在让我们看一些输入输出场景。
假设我们有一个包含几个元素的输入数组。在输出中,我们将获得指定值第一次出现的索引。
输入数组: [1, 3, 9, 4, 1, 7] 指定值 = 9 输出: 2
指定元素 9 在数组中仅出现一次,该值的结果索引为 2。
输入数组: [1, 3, 6, 2, 4, 6] 指定值 = 6 输出: 2
给定元素 6 在数组中出现了两次,第一次出现的索引值为 2。
使用 list.index() 方法
list.index() 方法可帮助您找到索引数组中给定元素的第一次出现。如果列表内有重复元素,则返回元素的第一个索引。以下是语法 –
list.index(element, start, end)
第一个参数是我们想要获取索引的元素,第二个和第三个参数是可选参数,表示从哪里开始和结束对给定元素的搜索。
list.index() 方法返回一个整数值,它是我们传递给该方法的给定元素的索引。
示例
在上面的例子中,我们将使用 index() 方法。
# 创建数组 arr = [1, 3, 6, 2, 4, 6] print ("原始数组是: ", arr) print() specified_item = 6 # 获取指定元素第一次出现的索引item item_index = arr.index(specified_item) print('指定项第一次出现的索引是:',item_index)
输出
原始数组为:[1, 3, 6, 2, 4, 6] 指定项首次出现的索引为:2
给定值 6 在数组中出现了两次,但 index() 方法仅返回首次出现的值的索引。
使用 for 循环
类似地,我们可以使用 for 循环和 if 条件获取在数组第一个位置出现的指定项的索引。
示例
在这里,我们将使用 for 循环迭代数组元素。
# 创建数组 arr = [7, 3, 1, 2, 4, 3, 8, 5, 4] print ("原始数组为: ", arr) print() specified_item = 4 # 获取指定项首次出现的索引 for index in range(len(arr)): if arr[index] == specified_item: print('指定项第一次出现的索引是:',index) break
输出
原始数组为:[7, 3, 1, 2, 4, 3, 8, 5, 4] 指定项首次出现的索引为:4
给定值 4 在数组中重复出现,但上述示例仅返回首次出现的值的索引。
使用 numpy.where()
numpy.where() 方法用于根据给定条件过滤数组元素。通过使用此方法,我们可以获取给定元素的索引。以下是语法 –
numpy.where(condition, [x, y, ]/)
示例
在此示例中,我们将使用带条件的 numpy.where() 方法。
import numpy as np # 创建数组 arr = np.array([2, 4, 6, 8, 1, 3, 9, 6]) print("原始数组: ", arr) specified_index = 6 index = np.where(arr == specified_index) # 获取指定项首次出现的索引 print('指定项首次出现的索引is:',index[0][0])
输出
原始数组:[2 4 6 8 1 3 9 6] 指定项首次出现的索引为:2
条件 arr == specified_index 检查 numpy 数组中的给定元素,并返回一个满足给定条件或 True 的元素数组。从该结果数组中,我们可以使用 index[0][0] 获取首次出现的索引。