Python 程序查找数组中指定项的第一次出现的索引

pythonserver side programmingprogramming

数组是一种数据结构,用于按顺序存储相同数据类型的元素。存储的元素由索引值标识。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] 获取首次出现的索引。


相关文章