用 Python 查找列表中元素的所有索引

您所在的位置:网站首页 index函数查找对应值python 用 Python 查找列表中元素的所有索引

用 Python 查找列表中元素的所有索引

2024-05-09 08:28| 来源: 网络整理| 查看: 265

使用 for 循环查找元素的所有出现的指数 使用 numpy.where() 函数查找 Python 中一个元素的所有出现的索引 使用 more_itertools.locate() 函数查找元素的所有出现的指数

在 Python 中,列表用于在一个名称下存储多个元素。每个元素可以通过它在列表中的位置来访问。一个元素可以出现在列表中的多个位置。

在本教程中,我们将介绍如何查找列表中特定元素的所有出现的索引。我们将在下面的列表中查找元素 1 的所有索引。

l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] 使用 for 循环查找元素的所有出现的指数

我们可以很容易地对列表进行迭代,并将每个元素与所需元素进行比较,并找到其索引。我们可以将最终结果存储在一个新的列表中。在下面的例子中,我们使用 range() 函数对列表进行迭代。

l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = [] x = 1 # The required element for i in range(len(l1)): if l1[i] == x: pos.append(i) print(pos)

输出:

[0, 2, 8]

实现上述代码的更高效、更紧凑的方法是使用下面的列表推导。

l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = [i for i in range(len(l1)) if l1[i] == 1] print(pos)

输出:

[0, 2, 8]

同样,我们也可以使用 enumerate() 函数,将索引和值一起返回。比如说

l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = [i for i, x in enumerate(l1) if x == 1] print(pos)

输出:

[0, 2, 8] 使用 numpy.where() 函数查找 Python 中一个元素的所有出现的索引

NumPy 库有 where() 函数,用于根据某些条件返回一个数组中元素的索引。对于这个方法,我们必须将列表作为一个数组传递。最终的结果也是以数组的形式出现。下面的代码片段展示了我们如何使用这个方法。

import numpy as np l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = np.where(np.array(l1) == 1)[0] print(pos)

输出:

[0 2 8] 使用 more_itertools.locate() 函数查找元素的所有出现的指数

more_itertools 是一个第三方的方便模块。它有许多功能,可以在处理可迭代元素时创建高效和紧凑的代码。该模块中的 locate() 函数返回条件为 True 的元素的索引。它返回一个 itertools 对象。下面的代码片段解释了我们如何使用这个方法。

from more_itertools import locate l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1] pos = list(locate(l1, lambda x: x == 1)) print(pos)

输出:

[0, 2, 8]

我们使用 list() 函数来确保最终结果是一个列表的形式。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3