Python–获取列表中某个元素所有出现的索引
给定一个列表,任务是编写一个 Python 程序来获取列表中所有元素的索引。
方法 1:使用进行循环
这是一个简单的方法来获取列表中所有出现的元素的索引。这里我们使用一个 for 循环来遍历原始列表中的每个元素。
语法:范围内的迭代器名称(长度)
其中
- 迭代器名称是迭代器的名称
- 长度是列表的大小
示例:
Python 3
# initialize a list
my_list = [1, 2, 3, 1, 5, 4]
# find length of the list
list_size = len(my_list)
# declare for loop
for itr in range(list_size):
# check the condition
if(my_list[itr] == 1):
# print the indices
print(itr)
输出:
0
3
方法二:使用枚举()函数
我们可以使用枚举函数来代替 for 循环。此函数向 iterable 添加一个计数器,并返回枚举对象。
语法:【枚举(list_name) if 条件中元素 _name 的表达式】
其中
- 元素名称是元素的名称
- list_name 是列表的名称
- 条件是需要为真的条件
为此,我们将创建列表,然后我们将创建枚举函数来获取列表中所有元素的索引
示例:
Python 3
# initialize a list
my_list = [1, 2, 3, 1, 5, 4]
indices = [ind for ind, ele in enumerate(my_list) if ele == 1]
# print the indices
print(indices)
输出:
[0, 3]
方法 3:使用 itertools 模块
Itertools 是内存高效的工具,它们本身或组合起来都很有用,因此为此,我们将使用这个模块中的 count()方法,该方法将从起始值返回一个等间距值的迭代器。
语法:【在 zip(count(),list_name) if 条件中元素 _name 的表达式】
- 元素名称是元素的名称
- list_name 是列表的名称
- 条件是需要为真的条件
为此,我们将创建一个列表,然后使用带有 zip()的理解,我们将获得列表中所有元素的索引。
示例:
Python 3
# import count method from itertools
from itertools import count
# initialize a list
my_list = [1, 2, 3, 1, 5, 4]
indices = [ind for ind,
ele in zip(count(),
my_list) if ele == 1]
# print the indices
print(indices)
输出:
[0, 3]
方法四:使用 NumPy 库
NumPy 是通用的数组处理包,它提供了在 Python 中使用数组的便捷方式。
语法: numpy.where(list_name,value)[index]
其中
- list_name 是列表的名称
- 值是要搜索的值
- 索引是数组的起始索引(通常为“0”)
为此,我们将使用 numpy.array()创建一个数组,然后在条件满足时使用 numpy.where()方法获取输入数组中元素的所有索引。
示例:
Python 3
# import numpy module
import numpy
# initialize a array
my_list = numpy.array([1, 2, 3, 1, 5, 4])
indices = numpy.where(my_list == 1)[0]
# display result
print(indices)
输出:
[0, 3]
版权属于:月萌API www.moonapi.com,转载请注明出处