Python列表index()用法

本文概述

  • 列表
  • 索引
  • 结束!
数据结构是一种组织和存储数据的方法, 可实现高效的访问和修改。列表是一种数据结构, 用于存储异构项目的集合。列表是内置的数据结构。 Python还提供了许多可用于处理列表的函数或方法。在本教程中, 你将专门学习index()函数。 index()方法搜索列表中的元素并返回其位置/索引。首先, 本教程将向你介绍列表, 然后你将看到一些使用index()函数的简单示例。一直坚持到最后, 以学习更多其他有趣的东西…
列表列表写在方括号[和]中, 其中的各项用逗号(, )分隔。列表是异构项目的可变存储集合。让我们分解一下语句:可变是什么意思?可变意味着你可以更改列表的内容而无需实际更改其标识。异类项目是什么意思?这意味着列表可以在其内部保存混合值, 例如整数, 浮点数, 字符串等。列表内置于Python中, 因此你无需单独调用它们。首先定义一个列表:
list_x = [] #Empty list list_x # Print the list to see its contents

[]

list_x = [1, 'two', 3.0] list_x

[1, 'two', 3.0]

list_y = [1, 2, 3] list_y

[1, 2, 3]

以上都是列表的示例。 list_x是异构项目的列表, 因为它包含整数, 字符串和浮点数。而list_y保存同类项目-仅整数。
现在, 假设你需要从list_x访问字符串值” two” 以进行操作。这是你的处理方式:
value = http://www.srcmini.com/list_x[1] print('How do you spell 2?', value)

How do you spell 2? two

列表索引在Python中以0开头。因此, 索引值1为0, “ 二” 为1, 而3为2。
但是, 如果你知道要访问的值却不知道该值将显示在列表中怎么办?还是它甚至存在于列表中?这是index()方法派上用场的时候。
索引方法index()返回列表中最低的索引, 其中搜索到的元素出现在列表中。如果搜索不存在的任何元素, 则返回ValueError。
让我们尝试一下:
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] element = 3 list_numbers.index(element)

2

list_numbers = [4, 5, 6, 7, 8, 9, 10] element = 3 # Not in the list list_numbers.index(element) # Throws a ValueError

---------------------------------------------------------------------------ValueErrorTraceback (most recent call last)< ipython-input-35-6a006c988b06> in < module> () 1 list_numbers = [4, 5, 6, 7, 8, 9, 10] 2 element = 3 # Not in the list ----> 3 list_numbers.index(element) # Throws a ValueErrorValueError: 3 is not in list

让我们尝试使用字符串元素:
list_numbers = [1, 'two', 3, 4, 5, 6, 7, 8, 9, 10] element = 'two' list_numbers.index(element)

1

返回最低索引是什么意思?
假设你有一个元素的多个实例, 然后index()将为你提供该元素出现的第一个位置。
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10] element = 3 list_numbers.index(element)

0

返回的位置是0, 因为3在Python的第一个位置或第0个索引中首先出现。
这是内部发生的情况:索引正在遍历从第一个位置(第一个索引)开始的所有值, 查找你要搜索的元素, 并在找到值后立即返回位置并退出系统。但是, 这在浏览大型列表时不太有效, 你需要将某些东西的位置移到列表的末尾。
index()为你提供一个选项, 以提示你所搜索的值可能在哪里。
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] element = 7 list_numbers.index(element, 5, 8)

6

因此语法为:list_name.index(element, start, stop)。
此处的开始和结束值是可选的。实际上, 仅在完全确定范围时才使用它, 否则将出现如下所示的ValueError。
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] element = 7 list_numbers.index(element, 1, 5)

---------------------------------------------------------------------------ValueErrorTraceback (most recent call last)< ipython-input-39-b96f4b5e51d5> in < module> () 1 list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 2 element = 7 ----> 3 list_numbers.index(element, 1, 5)ValueError: 7 is not in list

【Python列表index()用法】奖励:由于index()仅将第一个匹配项返回给对象, 因此, 如果你需要列表中更多匹配项的位置, 则可以使用列表理解或生成器表达式。方法如下:
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10] [i for i, n in enumerate(list_numbers) if n == 3] # List comprehension

[0, 3, 4, 8]

list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10] g = (i for i, n in enumerate(list_numbers) if n == 3) # Generator expression print("Generators store values, the first value here is:", next(g), ". Then the next is:", next(g), "followed by ", next(g), "and finally ", next(g))

Generators store values, the first value here is: 0. Then the next is: 3 followed by4 and finally8

结束!恭喜, 你刚刚了解了Python中的index()函数。你已经了解了它如何帮助你使用列表。还向你介绍了一些新概念。有关列表理解的更多信息, 请查看srcmini的Python列表理解教程。 srcmini的Python迭代器教程提供了有关生成器和生成器表达式的更多信息。

    推荐阅读