迹忆客 专注技术分享

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

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

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

在 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() 函数来确保最终结果是一个列表的形式。

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

本文地址:

相关文章

如何在 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 浏览次数:85 分类:Python

本教程演示了如何在 Python 中检查两个列表是否相同或相等。在本教程中,我们将研究检查 Python 中两个列表是否相等的各种方法。

Python 中的字典数组或列表

发布时间:2023/12/18 浏览次数:125 分类:Python

本教程演示了如何在 Python 中创建字典数组。Python 中的字典以键值对的形式构成一组元素。列表可以在一个公共名称和特定索引下存储不同类型的元素。

检查索引是否存在于 Python 列表中

发布时间:2023/12/18 浏览次数:185 分类:Python

本教程演示了使用列表范围和 IndexError 异常检查 Python 列表中是否存在索引。我们将介绍两种使用列表范围和 IndexError 异常检查列表索引是否存在的方法。

在 Python 中对数字列表进行归一化

发布时间:2023/12/18 浏览次数:50 分类:Python

本教程演示如何归一化 python 中的数字列表。归一化意味着将给定的数据转换为另一个尺度。我们重新调整数据,使其介于两个值之间。

如何在 Python 中创建具有特定大小的列表

发布时间:2023/12/18 浏览次数:178 分类:Python

本教程介绍了如何在 Python 中创建具有特定大小的列表。当程序员提前知道元素数量时,为列表或数组预分配存储空间是程序员经常用地方式。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便