如何在Python中查找列表中对象的索引

如何在Python中查找列表中对象的索引?

在本文中,我们将展示如何使用Python在给定的输入列表中查找对象的索引。以下是三种不同的方法来完成这个任务

  • 使用index()方法

  • 使用For循环

  • 使用List推导式和enumerate()函数

假设我们已经采用了包含一些元素的列表。我们将返回给定输入列表中指定对象的索引。

阅读更多:Python 教程

方法1:使用index()方法

Python中的index()函数允许您查找字符串或项目列表中的元素或项的索引位置。它返回所提供条目的列表的最低可能索引。如果列表中不存在指定的项,则返回ValueError

lst.index(item, start, end)

算法(步骤)

以下是要执行所需任务的算法/步骤的目录 –

  • 创建一个变量以存储输入列表

  • 使用 index() 函数通过将列表项目/元素作为参数传递给index()函数来获取列表中任何元素的索引。

  • 打印列表中指定项目的索引。

例子

以下程序使用index()函数返回列表中指定元素的索引 –

lst = ["Python", "TutorialsPoint", "Hello", "TutorialsPoint", "Everyone"]

# 打印'TutorialsPoint'的索引
print("TutorialsPoint的索引 = ", lst.index("TutorialsPoint"))

输出

在执行上述程序时,将生成以下输出 –

TutorialsPoint的索引 = 1

如果在列表中不存在指定的项,则index()方法返回ValueError,如下所示:

例子

在下面的代码中,“Java”不在输入列表中。因此,当我们尝试打印Java的索引时,index()方法会返回ValueError。

lst = ["Python", "TutorialsPoint", "Hello", "TutorialsPoint", "Everyone"]
# 打印Java的索引
# 现在,由于Java不在列表中,所以我们会得到一个错误
print("Java的索引 = ", lst.index("Java"))

输出

Traceback (most recent call last):
  File "main.py", line 4, in 
    print("Java的索引 =", lst.index("Java"))
ValueError: 'Java' is not in list

以下代码使用try-except块处理index()方法返回的ValueError异常 –

如果发生任何错误,except块语句将会执行。

例子

lst = ["Python", "TutorialsPoint", "Hello", "TutorialsPoint", "Everyone"]

# 使用try-except块处理ValueError
try:
   print(lst.index("Java"))

except ValueError:
   print("列表中不存在该元素")

输出结果

列表中不存在该元素

方法2:使用For循环

算法(步骤)

执行所需操作的算法/步骤如下:

  • 创建一个变量以存储输入列表。

  • 创建一个变量以存储任何给定列表元素(这里是TutorialsPoint)的所有索引。

  • 使用for循环,使用len()函数遍历列表的长度(对象中的项数是通过len()方法返回的)。

  • 使用if条件语句,检查迭代器索引处的元素是否等于“TutorialsPoint”。

  • 如果条件为真,则使用append()函数将相应的索引添加到上述新创建的索引列表中(在列表末尾添加元素)。

  • 打印所有“TutorialsPoint”的索引。

示例

以下程序使用for循环和append()函数返回列表中指定元素的索引-

# 输入列表
lst = ["TutorialsPoint", "Python", "TutorialsPoint", "Hello", "TutorialsPoint", "Everyone"]

# 存储任何给定列表元素的索引
index_list = []

# 遍历列表的长度
for index in range(len(lst)):

   # 检查迭代器索引处的元素是否等于“TutorialsPoint”
   if lst[index] == "TutorialsPoint":

      # 如果条件为真,则将相应的索引添加到索引列表中
      index_list.append(index)

# 打印所有“TutorialsPoint”的索引
print("所有“TutorialsPoint”的索引:)
print(index_list)

输出结果

所有“TutorialsPoint”的索引:
[0, 2, 4]

方法3:使用列表推导和enumerate()函数

enumerate()方法会将可迭代对象加上一个计数器并返回一个枚举对象。

语法

enumerate(iterable, start=0)

参数

iterable − 任何支持迭代的序列/对象/可迭代对象。

start − enumerate()从此值开始计数。如果未指定start,则使用值0。

算法(步骤)

执行所需操作的算法/步骤如下:

  • 创建一个变量来存储输入列表,并添加一些虚拟数据。

  • 使用enumerate()函数将列表索引和列表元素作为迭代器遍历列表。

  • 检查列表元素是否等于给定对象(“TutorialsPoint”),如果为真,则仅使用列表推导式存储索引。

  • 打印所有“TutorialsPoint”的索引。

例子

以下程序使用列表推导式和enumerate()函数返回列表中指定元素的索引 –

# 输入列表
lst = ["TutorialsPoint", "Python", "TutorialsPoint", "Hello", "TutorialsPoint", "Everyone"]

# 存储所有“TutorialsPoint”的索引。我们使用enumerate函数遍历列表。enumerate()函数有两个迭代器,lst_index指的是索引迭代器,element指的是列表元素迭代器,并检查列表元素是否等于“TutorialsPoint”。
index_list = [lst_indx for (lst_indx, element) in enumerate(lst) if element == "TutorialsPoint"]

print("所有'TutorialsPoint'的索引:")
print(index_list)

输出

所有'TutorialsPoint'的索引:
[0, 2, 4]

结论

在本文中,我们学习了如何使用index()方法获取列表中元素或对象的索引,以及如何利用try-except块来处理元素不在列表中的情况。我们学习了如何使用enumerate()函数来遍历具有两个迭代器的列表。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程