📌  相关文章
📜  Python – 获取列表中所有出现的元素的索引(1)

📅  最后修改于: 2023-12-03 15:34:09.244000             🧑  作者: Mango

Python – 获取列表中所有出现的元素的索引

在Python中,我们可以使用列表(list)来存储一组数据。但是,有时候我们需要知道某个元素在列表中出现的索引位置。如果一个元素在列表中出现多次,我们也需要获取所有出现的索引位置。下面介绍几种方法可以实现这一要求。

方法1:使用for循环和enumerate方法
my_list = [2, 4, 6, 2, 8, 2, 10]

indices = [index for index, element in enumerate(my_list) if element == 2] 

print(indices)

输出结果:

[0, 3, 5]

说明:该方法使用for循环遍历列表中的每个元素,并使用enumerate方法获取元素的索引和值。然后,使用if语句来筛选出所有等于2的元素,并将索引存储在一个列表中,最后打印出来。

方法2:使用for循环和list.index方法
my_list = [2, 4, 6, 2, 8, 2, 10]

indices = [index for index in range(len(my_list)) if my_list[index] == 2] 

print(indices)

输出结果:

[0, 3, 5]

说明:该方法同样使用for循环遍历列表中的每个元素,但是使用list.index方法来获取元素在列表中第一次出现的索引位置。为了获取列表中所有出现的索引位置,我们需要通过循环来逐个查找每个元素的索引,并将索引存储在一个列表中。

方法3:使用numpy库
import numpy as np

my_list = [2, 4, 6, 2, 8, 2, 10]

indices = np.where(np.array(my_list) == 2)[0]

print(indices)

输出结果:

[0 3 5]

说明:该方法使用numpy库中的where方法来查找所有出现2的元素的索引。首先将列表转换为numpy数组,然后使用where方法找到所有等于2的元素的索引位置,并将索引存储在一个numpy数组中。最后,使用[0]来获取所有索引位置的值。