Python 查找list中的某个元素的所有的下标方法

  • Post category:Python

以下是“Python查找list中的某个元素的所有的下标方法”的完整攻略。

1. 使用enumerate()函数

在Python中,可以使用enumerate()函数来查找list中某个元素所有下标。enumerate()函数可以同时返回元素的下标和值,我们可以使用一个for循环来遍历list,然后使用if语句来判断元素是否等于目标元素,如果相等,则将下标添加到一个新的list中。

示例1:查找list中所有的3的下标

假设我们有一个名为my_list的list,我们想要查找所有的3的下标。我们可以使用以下代码来实现。

my = [1, 2, 3, 4, 3, 5, 6, 3, 7, 8, 3]
indices = [i for i, x in enumerate(my_list) if x == 3]
print(indices)  # 输出[2, 4, 7, 10]

在上面的示例代码中,我们使用for循环和if语句遍历my_list,并查找所有的3的下标。我们使用enumerate()函数来同时返回元素的下标和值,然后使用if语句来判断元素是否等于3。如果相等,则将下标添加到一个新的list中。最后,我们使用print()函数将所有的下标输出。

示例2:查找list中所有的字符串的下标

设我们有一个名为my_list的list,其中包含一些字符串,我们想要查找所有的字符串的下标。我们可以使用以下代码来实现。

my_list = [1, "hello", 3, "world", 5, "hello", 7, "world"]
indices = [i for i, x in enumerate(my_list if isinstance(x, str)]
print(indices)  # 输出[1, 3, 5, 7]

在上面的示例代码中,我们使用for循环和if语句来遍历my_list,并查找所有的字符串的下标。我们使用enumerate()函数来同时返回元素的下标和值,然后使用isinstance()函数来判断元素是否为字符串。如果是字符串,则将下标添加到一个新的list中。最后,我们使用print()函数将所有的下标输出。

2. 使用numpy库

除了使用Python内置函数,还可以使用numpy库来查找list中某个元素的所有下标。numpy库是一个Python科学计算库,它提供了许多高效的数组操作函数。

示例3:查找list中所有的3的下标

假设我们有一个名为my_list的list,我们想要查找所有的3的下标。我们可以使用以下代码来实现。

import numpy as np

my_list = [1,2, 3, 4, 3, 5, 6, 3, 7, 8, 3]
indices = np.where(np.array(my_list) == 3)[0]
print(indices)  # 输出[2 4 7 10]

在上面的示例代码中,我们首先导入numpy库。然后,我们使用.array()函数将my_list转换为一个numpy数组,并使用np.where()函数查找所有等于3的元素的下标。最后,我们使用print()函数将所有的下标输出。

示例4:查找list中所有的字符串的下标

假设我们有一个为my_list的list,其中包含一些字符串,我们想要查找所有的字符串的下标。我们可以使用以下代码来实现。

 numpy as np

my_list = [1, "hello", 3, "world", 5, "hello", 7, "world"]
indices = np.where(np.array([isinstance(x, str) x in my_list]))[0]
print(indices)  # 输出[1 3 5 7]

在上面的示例代码中,我们首先导入numpy库。然后,我们使用np.array()函数将my_list转换为一个numpy数组,并使用isinstance()函数来判断素是否为字符串。我们使用np.where()函数查找所有等于True的元素的下标。最后,我们使用print()函数将所有的下标输出。

3. 总结

本文详细讲解了Python查找list中某个元素的所有下标的方法,包括使用enumerate()函数和库两种方法。使用enumerate()函数可以更简单地查找list中某个元素的所有下标,而使用numpy库可以更高效地进行数组操作。同时,还提供了四个示例说明,分别介绍了查找list中所有的3的下标和查找list中所有的字符串的下标的方法。在使用这些时,需要注意元素的类型和list的长度。