Python 列表查找,如何在列表中查找项目或者元素索引翻译
Posted 梦想橡皮擦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 列表查找,如何在列表中查找项目或者元素索引翻译相关的知识,希望对你有一定的参考价值。
Python 列表查找,如何在列表中查找项目或者元素索引
在本文中,你将学习如何在Python中查找列表中包含元素的索引。
有几种方法可以实现这一点,在本文中,你将学习三种不同的方式用于查找列表元素的索引
三种技巧如下:
- 使用
index()
方法查找索引; - 使用
for-loop
; - 使用列表推导式和
enumerate()
函数
Python 列表是什么?
列表是Python中的内置数据类型,也是最强大的数据结构之一。
它可以充当容器,用于存储相同变量名下的多个(通常是相关的)项。
每一个元素都被放置在方括号 []
内,方括号内的每一项都用 ,
隔开。
# 'my_information' 列表变量,包含字符串和数字
my_information = ["John Doe", 34, "London", 1.76]
从上面的示例中,你可以看到列表能包含任何数据类型的项,这意味着列表元素可以是多样的。这与只存储相同类型的项的数组不同,列表具备更大的灵活性。
列表也是可变的,这意味着列表是动态的,列表项可以被更新,新项目可以添加到列表中,任何项都可以在程序的整个生命周期中随时删除。
Python索引概述
列表是项目(元素)的集合,它是一个有序的项目集合,并且在很大程度上保留了定义时的顺序。
列表中的每个元素都有一个唯一的位置来标识它,这个位置就是元素的索引。
Python和其它编程语言一样,索引都从0开始,而不是1。
让我们看一下前文中使用的列表。
my_information = ["John Doe", 34, "London", 1.76]
- 列表的索引为零,计数从0开始;
- 第一个列表元素
"John Doe"
的索引为0; - 第二个列表元素
34
的索引为1; - 第三个列表元素
"伦敦"
的索引为2; - 第四个列表元素
1.76
的索引为3。
索引对于访问特定位置(索引)的元素非常有用,因此,可以通过使用列表元素的索引来获取列表的任意元素。
要访问某个元素,首先使用列表的名称,然后在方括号中使用要访问的元素的索引对应的整数,下面是使用索引访问每个元素的方法:
my_information = ["John Doe", 34, "London", 1.76]
print(my_information[0])
print(my_information[1])
print(my_information[2])
print(my_information[3])
# 输出
#John Doe
#34
#London
#1.76
那么,如何在Python列表中,查找元素的索引呢?
在接下来的部分中,你将看到一些查找列表元素索引的方法
在Python中使用 list 的 Index()
方法查找元素的索引
到目前为止,你已经了解了如何通过引用某个值的索引号来访问该值,但是,当你不知道索引号,而你正在处理一个大的列表时,会发生什么呢?
你可以给出一个值并找到它的索引,这样就可以检查它在列表中的位置,为此,Python内置了 index()
方法被用作搜索工具。 index()
方法的语法如下所示
my_list.index(item, start, end)
让我们来分析一下:
my_list
:正在搜索的列表的名称;.index()
:具备3个参数的搜索方法,一个参数是必需的,另外两个是可选的;item
:必需的参数,它是待搜索其索引的元素;start
:第一个可选参数,开始搜索的索引。end
:第二个可选参数,结束搜索的索引。
让我们来看一个仅使用必须参数的示例:
programming_languages = ["javascript","Python","Java","C++"]
print(programming_languages.index("Python"))
# 输出
# 1
在上面的例子中, index()
方法只接受 1 个参数,这个参数就是要查找索引的元素,请记住,传递的参数是区分大小写的,这意味着如果你传递的是 "python"
而不是 "Python"
,你会收到一个错误,因为带有小写 "p"
的 "python"
不是列表的一部分。它的返回值是一个整数,这个整数就是传递值的索引。
让我们看另一个例子:
programming_languages = ["JavaScript","Python","Java","C++"]
print(programming_languages.index("React"))
# 输出
# line 3, in <module>
# print(programming_languages.index("React"))
# ValueError: 'React' is not in list
如果你尝试搜索一个元素,但在正在搜索的列表中没有匹配元素,Python 将抛出一个错误作为返回值,该错误类型是 ValueError
,它表示列表中不存在正在搜索的元素。
防止这种情况发生的一种方法是将 index()
方法的调用放在 try/except
块中。
如果该值不存在,控制台将收到一条消息,表示该值未存储在列表中,因此不存在。
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
try:
print(programming_languages.index("React"))
except ValueError:
print("That item does not exist")
#输出
#That item does not exist
另一种方法是在查找索引之前,先检查元素是否在列表中,输出将是一个布尔值: True
或 False
。
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
print("React" in programming_languages)
#输出
#False
index() 方法中的可选参数
让我们来看看下面的例子:
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
print(programming_languages.index("Python"))
#output
#1
在列表类型的变量 programming_languages
中,有3个待搜索的“Python”字符串实例。
因为在本例中,列表元素数很少,所以有一种反向查找的测试方法,可以数一数,算出它们的索引号,然后像你在前面章节中看到的那样引用它们。
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
print(programming_languages[1])
print(programming_languages[3])
print(programming_languages[5])
#output
#Python
#Python
#Python
一个在位置1,另一个在位置3,最后一个在位置5。
当使用 index()
方法时,为什么它们不显示在输出中?
使用 index()
方法时,返回值仅为列表中第1个出现的项,其余的不会返回, index()
方法只返回元素第1次出现的位置的索引。
可以尝试将可选的开始和结束参数传递给 index()
方法。
你已经知道,第一次出现从索引1开始,所以这可能是 start
参数的值,对于end参数,可以先找到列表的长度。
要查找长度,请使用 len()
函数。
print(len(programming_languages))
#output is 6
end
参数的值将是列表的长度减去1,列表中最后一项的索引总是比列表长度小一个,所以,把所有这些放在一起,下面是如何尝试获取该项的所有3个实例。
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
print(programming_languages.index("Python",1,5))
#output
#1
输出仍然只返回第一个实例,尽管开始和结束参数为搜索提供了一系列位置,但使用 index()
方法时返回的值,仍然只是列表中第一个出现的元素。
如何获取列表中所有元素的索引
使用for循环获取列表中所有项目的索引。
让我们使用之前的事例,该列表中出现了三个字符串 “Python”
。
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
首先,创建一个新的空列表,这将是存储“Python”所有索引的列表。
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
python_indices = []
接下来,使用for循环。这是一种迭代(或循环)列表的方法,并获取原始列表中的每个元素,具体来说,我们循环每个元素的索引号。
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
python_indices = []
for programming_language in range(len(programming_languages)):
首先使用for关键字,然后创建一个变量 programming_language
,它将在迭代过程中充当原始列表中每个元素位置的占位符。
接下来,需要指定for循环应该执行的迭代次数,在这种情况下,循环将从开始到结束遍历列表的整个长度。
语法 range(len(programming_languages))
是访问列表 programming_languages
中所有元素的一种方式。
range()
函数接受一系列数字,这些数字指定开始计数和结束计数的数字。
len()
函数的作用是:计算列表的长度,因此在本例中,计数从0开始,列表的结尾结束。
最后,需要设置一个逻辑条件。
本质上,你的目标是:“如果在迭代过程中,给定位置的元素值等于 Python
,那么将该位置添加到我之前创建的新列表中。”。
使用 append()
方法将元素添加到列表中。
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
python_indices = []
for programming_language in range(len(programming_languages)):
if programming_languages[programming_language] == "Python":
python_indices.append(programming_language)
print(python_indices)
#output
#[1, 3, 5]
使用列表推导式和 enumerate()
函数获取列表中所有元素的索引
另一种方法是使用列表推导式来找到某个特定元素的所有索引,列表推导式是一种基于现有列表创建新列表的方法,下面是如何使用列表推导式获得字符串 Python
每次出现的所有索引:
programming_languages = ["JavaScript","Python","Java","Python","C++","Python"]
python_indices = [index for (index, item) in enumerate(programming_languages) if item == "Python"]
print(python_indices)
#[1, 3, 5]
使用 enumerate()
函数,可以存储满足设置条件的元素的索引。
It first provides a pair (index, item) for each element in the list () that is passed as the argument to the function.
首先它会把列表( programming_languages
)中的每一个键值对( (index, item)
),作为参数传递到函数中。
index
表示列表项的索引号, item
表示列表项本身。
然后,它充当一个计数器,从0开始计数,并在每次满足设置的条件时递增,选择并移动符合条件的元素的索引。与列表推导式相结合,它将创建一个包含字符串“Python”的所有索引的新列表。
总结
就在这里!现在,你已经知道了在Python的列表中查找元素索引的一些方法,以及查找元素多次出现的索引的方法。
我希望你觉得这篇文章有用。
感谢阅读和愉快的编码!
以上是关于Python 列表查找,如何在列表中查找项目或者元素索引翻译的主要内容,如果未能解决你的问题,请参考以下文章