在 Python 中找到列表中元素的索引
本教程将演示如何在 Python 列表中查找元素的位置或索引。
在 Python 中使用列表 index()
方法查找列表的索引
Python 列表有一个内置的方法叫做 index()
,该方法接受一个表示要在现有列表中搜索的值的参数。该函数将返回从索引 0
开始找到的第一次出现的索引,而不管它在列表中出现了多少次。
例如,声明一个含有重复值 20
的列表,并调用方法 index(20)
并打印返回的内容。
lst = [13, 4, 20, 15, 6, 20, 20]
print(lst.index(20))
输出:
2
在 lst
数组中第一次出现的 20
值是在索引 2
上,这是函数调用的结果。具有相同值的其他元素将被忽略,因为它已在列表中找到匹配项。
如果给定列表中不存在某个值,而我们将传递不存在的值称为 index()
,会发生什么情况?让我们以这个为例。
lst = [13, 4, 20, 15, 6, 20, 20]
print(lst.index(21))
输出:
ValueError: 21 is not in list
如果在列表中找不到索引,则该函数将引发错误。在某些情况下,这可能不利于调用错误。为避免这种情况,请使用 try...except
块捕获错误,并进行处理,以使如果列表中不存在索引,则将其分配为 -1
。
lst = [13, 4, 20, 15, 6, 20, 20]
try:
ndx = lst.index(21)
except:
ndx = -1
print(ndx)
输出:
-1
这样,就不必调用显式错误,并且程序可以在操作后继续运行。
在 Python 中使用 numpy.where()
查找列表的索引
NumPy
模块具有一个称为 where()
的预定义函数,该函数用于在一个文件中查找多个元素,它接受一个跟定的条件。
在这种情况下,我们将专门使用 where()
来查找给定值的索引。与内置的 index()
函数不同,where()
函数可以返回值所在的索引列表,如果该值在列表中存在多次。如果你需要该值的所有出现,而不仅仅是第一次出现,这就很有用。
第一步是将 Python 列表转换成 NumPy
数组。为此,请调用函数 np.array()
。
import numpy as np
lst = np.array(lst=[13, 4, 20, 15, 6, 20, 20])
初始化 NumPy
数组后,我们只需要填充 where()
的第一个参数。将第一个参数初始化为 lst == 20
以找到值 20
的给定列表索引。
import numpy as np
lst = [13, 4, 20, 15, 6, 20, 20]
lst = np.array(lst)
result = np.where(lst == 20)
print(result)
输出:
(array([2, 5, 6]),)
由于 NumPy
主要处理矩阵,因此 where()
函数将返回一个数组的元组,而不是单个列表。如果只输出单个列表是首选的,则调用结果的第一个索引,然后使用 print()
将其输出。
import numpy as np
lst = [13, 4, 20, 15, 6, 20, 20]
lst = np.array(lst)
result = np.where(lst == 20)
print(result[0])
输出:
[2 5 6]
请注意,NumPy
数组由单个空格而不是普通逗号定界。
总之,index()
函数是在 Python 列表中查找元素位置的最简单方法。虽然,此函数仅返回给定值首次出现的索引。
如果存在该值的多个实例,则要返回多个索引,则可以选择使用 NumPy
模块中的 where()
函数。
相关文章
如何在 Python 中查找列表中的最大值
发布时间:2023/12/18 浏览次数:192 分类:Python
-
它演示了如何在 Python 中寻找列表中的最大值。本教程将涵盖一些场景和数据类型,从简单的整数列表到更复杂的结构,如数组中的数组。
用 Python 将两个列表转换为字典
发布时间:2023/12/18 浏览次数:91 分类:Python
-
它演示了如何在 Python 中把列表转换成字典。本教程将介绍如何在 Python 中把两个列表转换为字典,其中一个列表包含字典的键,另一个包含值。
在 Python 中查找列表中的字符串
发布时间:2023/12/18 浏览次数:110 分类:Python
-
本教程演示了如何在 Python 中查找具有特定子字符串的元素。我们将使用下面的列表并提取其中有 ack 的字符串。my_list = ["Jack", "Mack", "Jay", "Mark"]
用 Python 将两个列表相乘
发布时间:2023/12/18 浏览次数:137 分类:Python
-
本教程演示了如何在 Python 中对两个列表进行乘法。本教程将演示在 Python 中执行两个列表元素相乘的各种方法。
用 Python 查找列表中元素的所有索引
发布时间:2023/12/18 浏览次数:89 分类:Python
-
本教程演示了如何在 Python 中查找列表中某个元素的所有出现位置的索引在 Python 中,列表用于在一个名称下存储多个元素。每个元素可以通过它在列表中的位置来访问。
Python 中把一个文本文件读成一个列表
发布时间:2023/12/18 浏览次数:61 分类:Python
-
本教程演示了如何将文本文件读取到 python 列表中。本教程将研究多种方法来加载或读取文本文件到 Python 列表中。
Python 中按字母顺序对列表进行排序
发布时间:2023/12/18 浏览次数:87 分类:Python
-
本教程演示了如何在 Python 中按字母顺序对一个列表进行排序。在本教程中,我们将讨论如何使用 sort() 和 sorted() 函数对包含字符串的列表按字母顺序排序,并使用快速排序算法。
在Python中获取列表形状
发布时间:2023/12/18 浏览次数:133 分类:Python
-
本文探讨了在Python中确定列表形状的方法,涵盖了一维、嵌套和多维列表,以及处理不规则嵌套列表。在Python中,了解列表的形状对于处理数据结构非常重要,特别是涉及多维或嵌套列表的情况
在 Python 中追加元素到到列表的前面
发布时间:2023/12/18 浏览次数:196 分类:Python
-
它演示了如何在 Python 中把元素追加到列表的前面。在整个教程中,我们将使用一个整数列表作为例子,以关注列表插入,而不是插入各种数据类型