sequence[start:stop:step]
start 是切片开始的位置(包含该位置的元素)。
stop 是切片结束的位置(不包含该位置的元素)。
step 是步长(即两个元素之间的间隔),默认值为1。
1.基本切片
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_list[2:5]) # 输出: [2, 3, 4]
2.省略起始位置或结束位置
print(my_list[:5]) # 输出: [0, 1, 2, 3, 4]
print(my_list[5:]) # 输出: [5, 6, 7, 8, 9]
3.使用步长
print(my_list[::2]) # 输出: [0, 2, 4, 6, 8] (步长为2)
print(my_list[::-1]) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (反向切片)
4.字符串切片
切片不仅适用列表,还适用于字符串等其他序列
my_string = "Hello, World!"
print(my_string[0:5]) # 输出: Hello
print(my_string[7:]) # 输出: World!
print(my_string[::-1]) # 输出: !dlroW ,olleH
5.多维列表的切片
对于多维列表(即列表的列表),可以分别对每个维度进行切片。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1:3]) # 输出: [[4, 5, 6], [7, 8, 9]]
print(matrix[0][1:3]) # 对内部列表进行切片,输出: [2, 3]
注:①切片操作不会改变原始序列,而是返回一个新的序列。
②切片索引可以是负数,表示从序列末尾开始计数。例如,-1 表示最后一个元素,-2 表示倒数第二个元素。