亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 列表 index() 与示例

列表是以有序序列存储不同数据类型(整数、浮点数、布尔值、字符串等)的项的容器。它是 Python 内置的重要数据结构。数据写在方括号 ([]) 内,值用逗号 (,) 分隔。

列表中的项目从索引 0 开始的第一个元素进行索引。您可以通过添加新项目或更新、删除现有项目来更改创建的列表。它还可以有重复的项目和嵌套列表。

列表中有很多方法可用,其中最重要的一个是 index()。

在本教程中,您将学习:

Python 列表索引()

list index() 方法可帮助您找到给定元素的第一个最低索引。如果列表中有重复元素,则返回该元素的第一个索引。这是获取索引的最简单直接的方法。

除了内置的列表 index() 方法外,您还可以使用其他方法来获取索引,例如遍历列表、使用列表推导、enumerate()、过滤方法。

list index() 方法返回给定元素的第一个最低索引。

语法

list.index(element, start, end)

参数

参数 说明
元素 要获取索引的元素。
开始 此参数是可选的。您可以定义 start:索引来搜索元素。如果没有给出,则默认值为 0。
结束 此参数是可选的。您可以指定要搜索的元素的结束索引。如果未给出,则一直考虑到列表末尾。

返回值

list index() 方法返回给定元素的索引。如果元素不在列表中,则 index() 方法会抛出错误,例如 ValueError:‘Element’ is not in the list。

示例:查找给定元素的索引。

在列表 my_list =[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’] 中,我们想知道元素 C 和 F 的索引。

下面的例子展示了如何获取索引。

my_list = ['A', 'B', 'C', 'D', 'E', 'F']
print("The index of element C is ", my_list.index('C'))
print("The index of element F is ", my_list.index('F'))

输出:

The index of element C is  2
The index of element F is  5

示例:在 index() 中使用 start 和 end

在此示例中,将尝试使用开始和结束索引限制在列表中搜索索引。

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('C', 1, 5))
print("The index of element F is ", my_list.index('F', 3, 7))
#using just the startindex
print("The index of element D is ", my_list.index('D', 1))

输出:

The index of element C is  2
The index of element F is  5
The index of element D is  3

示例:使用不存在的元素测试 index() 方法。

当您尝试在列表中搜索不存在的元素的索引时,您将收到如下所示的错误:

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('Z'))

输出:

Traceback (most recent call last):
File "display.py", line 3, in <module>
print("The index of element C is ", my_list.index('Z'))
ValueError: 'Z' is not in list

使用for循环获取列表中元素的索引

使用 list.index() 方法,我们已经看到它给出了作为参数传递的元素的索引。

现在将列表视为: my_list =['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 。名称“Guru”在索引中出现 3 次,我想要所有名称为“Guru”的索引。

使用for循环我们应该能够得到多个索引,如下例所示。

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
all_indexes = [] 
for i in range(0, len(my_list)) : 
    if my_list[i] == 'Guru' : 
        all_indexes.append(i)
print("Originallist ", my_list)
print("Indexes for element Guru : ", all_indexes)

输出:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

使用 while 循环和 list.index()

使用 while 循环将遍历给定的列表以获取给定元素的所有索引。

在列表中:my_list =['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'],我们需要元素'Guru'的所有索引。

下面给出了一个示例,展示了如何使用 while-loop 获取所有索引

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
result = []
elementindex = -1
while True:
    try:
        elementindex = my_list.index('Guru', elementindex+1)
        result.append(elementindex)
    except  ValueError:
        break
print("OriginalList is ", my_list)
print("The index for element Guru is ", result)

输出:

OriginalList is  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
The index for element Guru is  [0, 3, 6]

使用列表推导获取列表中元素的索引

要获取所有索引,一种快速而直接的方法是在列表上使用列表推导。

列表推导是用于创建新序列(例如列表、字典等)的 Python 函数,即使用已经创建的序列。

它们有助于减少更长的循环并使您的代码更易于阅读和维护。

下面的例子展示了如何做到这一点:

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru']
print("Indexes for element Guru : ", all_indexes)

输出:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

使用枚举获取列表中元素的索引

Enumerate() 函数是 python 提供的内置函数。您可以使用 enumerate 来获取列表中元素的所有索引。它将输入作为可迭代对象(即可以循环的对象),输出是每个项目都有计数器的对象。

下面的例子展示了如何利用列表上的枚举来获取给定元素的所有索引。

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])

输出:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

使用过滤器获取列表中元素的索引

filter() 方法根据给定的函数过滤给定的列表。列表中的每个元素都会传递给函数,需要的元素会根据函数中给定的条件进行过滤。

让我们使用 filter() 方法来获取列表中给定元素的索引。

下面的例子展示了如何在列表中使用过滤器。

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) 
print("Indexes for element Guru : ", all_indexes)

输出:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

使用 NumPy 获取列表中元素的索引

NumPy 库专门用于数组。所以这里将利用 NumPy 从给定的列表中获取我们需要的元素的索引。

要使用 NumPy,我们必须安装并导入它。

以下是相同的步骤:

步骤 1) 安装 NumPy

pip install numpy

步骤 2) 导入 NumPy 模块。

import numpy as np

步骤 3) 利用 np.array 将列表转换为数组

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)

第 4 步) 获取你想要的元素的索引,使用np.where()

item_index = np.where(np_array == 'Guru')[0]

带输出的最终工作代码如下:

import numpy as np
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)
item_index = np.where(np_array == 'Guru')[0]
print("Originallist ", my_list)
print("Indexes for element Guru :", item_index)

输出:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0 3 6]

使用 more_itertools.locate() 获取列表中元素的索引

more_itertools.locate() 有助于在列表中查找元素的索引。此模块适用于 python 3.5+ 版本。 more_itertools 包 必须先安装才能使用它。

以下是more_itertools的安装和使用步骤

步骤1) 使用 pip(python 包管理器)安装 more_itertools。命令是

pip install more_itertools

步骤 2) 安装完成后,导入 locate 模块如下图

from more_itertools import locate

现在您可以在列表中使用定位模块,如下示例所示:

from more_itertools import locate
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist : ", my_list)
print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru'))) 

输出:

Originallist :  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0, 3, 6]

总结:


Python

  1. C++ 中的 std::list 示例
  2. Python Print() 语句:如何通过示例打印
  3. Python String strip() 函数与示例
  4. 带有示例的 Python 字符串计数()
  5. 带有示例的 Python round() 函数
  6. 带有示例的 Python map() 函数
  7. Python Timeit() 与示例
  8. 集合中的 Python 计数器示例
  9. 带有示例的 Python 列表计数()
  10. Python从列表中删除重复项
  11. 从 Python LIST 中移除元素 [clear, pop, remove, del]
  12. Python - 列表