迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中找到列表中元素的索引

作者:迹忆客 最近更新:2023/12/17 浏览次数:

本教程将演示如何在 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() 函数。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便