python index函数是什么意思

index()用于查找元素首次出现的索引,找到返回下标,未找到抛ValueError;字符串、列表、元组均支持,但不返回全部匹配位置,且区分大小写或值严格相等。

Python 的 index() 函数是字符串、列表、元组等序列类型的一个方法,用于查找某个元素(或子串)在序列中**第一次出现的位置(索引)**。如果找到,返回对应的下标;如果没找到,会抛出 ValueError 异常。

字符串中的 index() 用法

对字符串调用 index(),可以查找子字符串首次出现的起始位置。

  • 语法:str.index(sub[, start[, end]])
  • sub 是要查找的子串,必填
  • startend 是可选的切片范围(左闭右开),不填则默认搜索整个字符串
  • 找不到时会报错:ValueError: substring not found

例如:

s = "hello world"
s.index("o") # 返回 4(第一个 'o' 在索引 4)
s.index("lo") # 返回 3("lo" 从索引 3 开始)
s.index("x") # 报 ValueError

列表和元组中的 index() 用法

对列表或元组调用 index(),查找某个值第一次出现的索引位置。

立即学习“Python免费学习笔记(深入)”;

  • 语法:list.index(value[, start[, end]])
  • 同样支持指定查找范围
  • 只匹配**完全相等**的元素(注意:列表里嵌套对象时,比较的是值或引用,取决于对象类型)

例如:

nums = [10, 20, 30, 20, 40]
nums.index(20) # 返回 1(第一个 20 的位置)
nums.index(20, 2) # 返回 3(从索引 2 开始找,下一个 20 在索引 3)
nums.index(50) # 报 ValueError

index() 和 find() 的区别(字符串专属)

字符串还有个相似方法 find(),它和 index() 功能类似,但关键区别在于:

  • find() 找不到时返回 -1,不会报错
  • index() 找不到时一定抛异常,适合你**确定目标存在**、想靠报错中断流程的场景

所以,如果你不想处理异常,更倾向用 find() 做安全检查;如果逻辑上必须存在、缺了就该出错,用 index() 更合适。

使用 index() 的注意事项

  • 它只返回**第一次匹配**的位置,不是全部位置。要找所有,得用循环或列表推导式配合 enumerate()
  • 大小写敏感(字符串)或值严格相等(列表),比如 "Hello".index("h") 会报错
  • 负数索引不被直接支持(startend 参数本身不能为负,但传入负数会被解释为从末尾计数,行为与切片一致)