Python 元组 index() 方法

Python 元组 index() 语法

index() 是 Python 元组的一个方法,它用于获取元组中指定元素第一次出现的下标(即索引)。

语法:

tuple.index(value, start=0, end=len(tuple))

说明:

tuple 是一个元组,index() 方法接收 3 个参数。

  • x(必选):表示要搜索的元素。
  • start(可选,默认:0):表示开始下标(包含)。
  • end(可选,默认:元组长度):表示结束下标(不包含)。

如果 start 和 end 这两个参数省略,则表示检索整个元组。

如果元组中存在重复的元素,就返回它第一次出现的下标;如果不存在这个元素,则会引发 ValueError 异常。因此,在调用 index() 之前,建议使用 in 运算符或 count() 方法判断元素是否存在。

注意: index() 方法时间复杂度为 O(n),在大型元组中要谨慎使用。

Python 元组 index() 摘要

使用频率
修改原元组
时间复杂度 O(n)(n 为搜索范围内的元素数量)
官方文档 查看

Python 元组 index() 示例

接下来,我们通过几个简单的例子来讲解 Python index() 方法是如何使用的。

示例 1:无重复元素的 index()

animals = ('ant', 'bee', 'cat', 'dog', 'ewe')
n = animals.index('dog')
print(n)

运行结果如下。

3

示例 2:有重复元素的 index()

nums = (3, 8, 32, 8, 59)
n = nums.index(8)
print(n)

运行结果如下。

1

分析:

元组 nums 中有两个 8,但使用 index() 方法只会返回第一个 8 的下标。

示例 3:元素不存在时使用 index()

languages = ('Python', 'Java', 'Go')
result = languages.index('Rust')
print(result)

运行结果如下。

(报错)ValueError: tuple.index(x): x not in tuple

分析:

使用 index() 方法是存在一定隐患的,因为如果元素不存在,就会导致程序直接报错。

示例 4:指定 index() 搜索范围(start 和 end)

letters = ('l', 'v', 'y', 'e', 'n', 'e', 't')

# 只有start
result1 = letters.index('e', 4)
print(result1)

# 有start和end
result2 = letters.index('e', 0, 4)
print(result2)

运行结果如下。

5
3

分析:

index('e', 4) 的检索范围为:从下标 4 到结尾(包含下标 4)。index('e', 0, 4) 的检索范围为:[0, 4),包含 0 但不包含 4。

示例 5:index() 使用负数下标范围

letters = ('l', 'v', 'y', 'e', 'n', 'e', 't')

result = letters.index('e', -3, -1)     # 对应索引 4到 6 (注意从 0 开始)
print(result)

运行结果如下。

5

分析:

index('e', -3, -1) 中的 -3 对应下标 4,而 -1 对应下标 6,因此它检索的范围为:[4, 6)。

示例 6:范围内无匹配元素

letters = ('l', 'v', 'y', 'e', 'n', 'e', 't')

try:
    result = letters.index('a', -3, -1)   # 对应索引 4到 6 (注意从 0 开始)
except ValueError as e:
    print(e)

运行结果如下。

(报错)tuple.index(x): x not in tuple

分析:

index('a', -3, -1) 表示在范围 [-3, -1) 检索 'a',由于不存在匹配元素,因此会抛出异常。

序列的 index() 方法

Python 中的序列(列表、元组、字符串)都有 index() 方法。对于列表和字符串的 index() 方法,另请参阅:

Python 列表 index() 方法

Python 字符串 index() 方法

示例 7:序列的 index() 方法

# 列表
lst = ['red', 'green', 'blue', 'red']
print(lst.index('red'))

# 元组
tup = (2, 1, 2, 3, 4, 2, 5)
print(tup.index(2))

# 字符串
s = 'lvyenet'
print(s.index('e'))

运行结果如下。

0
0
3

上一篇: Python 元组方法

下一篇: count()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号