什么是 index()?
在 Python 中,index() 是一个内建方法,用于查找某个值在序列(如字符串、列表、元组)中第一次出现的位置(索引)。如果找不到该值,则会抛出 ValueError 异常。
基本语法
字符串:
str.index(sub[, start[, end]])
列表/元组:
list.index(value[, start[, end]])
sub或value:要查找的元素。start(可选):开始搜索的位置,默认为 0。end(可选):结束搜索的位置(不包含),默认为序列长度。
使用示例
1. 字符串中的 index()
s = "hello world"
print(s.index('o')) # 输出: 4
print(s.index('o', 5)) # 输出: 7
print(s.index('x')) # 抛出 ValueError
2. 列表中的 index()
fruits = ['apple', 'banana', 'cherry', 'banana']
print(fruits.index('banana')) # 输出: 1
print(fruits.index('banana', 2)) # 输出: 3
print(fruits.index('grape')) # 抛出 ValueError
3. 元组中的 index()
nums = (10, 20, 30, 20)
print(nums.index(20)) # 输出: 1
注意事项与常见错误
⚠️ 如果查找的元素不存在,index() 会抛出 ValueError。建议先使用 in 操作符判断是否存在,或使用 try...except 捕获异常。
if 'x' in s:
print(s.index('x'))
else:
print("未找到")
与 find() 的区别(仅字符串)
字符串还有 find() 方法,功能类似,但不会抛出异常——找不到时返回 -1。
s = "hello"
print(s.find('x')) # 输出: -1
print(s.index('x')) # 抛出 ValueError