索引(Index)是Python中访问序列类型(字符串、列表、元组等)中特定元素的方式。通过索引,我们可以精确地定位和操作序列中的单个元素或子序列。
二、索引的作用
索引的核心作用在于高效定位数据,具体包括:
✅ 关键提示:索引是Python序列类型(字符串、列表、元组)的通用特性,但不适用于字典(字典使用键而非索引)。
三、索引的语法
3.1 正索引(正向索引)
基本语法:sequence[index]
索引从0开始计数
my_list = [10, 20, 30, 40, 50]my_string = "Hello"访问第一个元素print(my_list[0]) # 输出: 10print(my_string[0]) # 输出: H访问第三个元素print(my_list[2]) # 输出: 30print(my_string[2]) # 输出: l
3.2 负索引(反向索引)
my_list = [10, 20, 30, 40, 50]print(my_list[-1]) # 输出: 50(最后一个元素)print(my_list[-2]) # 输出: 40(倒数第二个元素)print(my_list[-3]) # 输出: 30(倒数第三个元素)
四、索引的工作原理
4.1 内存模型
索引: 0 1 2 3 4列表: [10, 20, 30, 40, 50]负索引: -5 -4 -3 -2 -1
4.2 索引计算公式
对于长度为 n 的序列:
正索引范围:0 到 n-1
负索引范围:-1 到 -n
五、常见数据类型的索引操作
5.1 列表(List)索引
fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']读取元素print(fruits[1]) # 输出: banana修改元素fruits[2] = 'coconut'print(fruits) # 输出: ['apple', 'banana', 'coconut', 'date', 'elderberry']删除元素del fruits[-1]print(fruits) # 输出: ['apple', 'banana', 'coconut', 'date']
5.2 字符串(String)索引
text = "Python编程"访问字符print(text[0]) # 输出: Pprint(text[-1]) # 输出: 程字符串不可变性(不能直接修改)text[0] = 'J' # 这会报错:TypeError但可以重新赋值text = 'J' + text[1:]print(text) # 输出: Jython编程
5.3 元组(Tuple)索引
coordinates = (10, 20, 30)print(coordinates[0]) # 输出: 10print(coordinates[-1]) # 输出: 30元组不可变性coordinates[0] = 100 # 报错:TypeError
5.4 多维序列索引
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]访问第一行第二列print(matrix[0][1]) # 输出: 2修改元素matrix[1][2] = 66print(matrix) # 输出: [[1, 2, 3], [4, 5, 66], [7, 8, 9]]
5.5常见错误(IndexError)
lst = [1, 2, 3]print(lst[3]) # 错误!索引3超出范围(有效索引为0,1,2)报错:IndexError: list index out of range
🚀小技巧:负索引简化结尾操作,[::-1]反转序列
🤖列表、元组、字典、集合在后面文章会分享