Python中的切片操作使用方括号`[start:end:step]`来指定一个序列(如列表、元组或字符串)的子序列。以下是切片操作的基本规则:
`start`:起始位置的索引,默认为0(表示序列的开头)。
`end`:结束位置的索引(不包含在切片中),默认为序列的长度(表示序列的末尾)。
`step`:步长,表示每次切片跳过的元素个数,默认为1。
切片操作可以省略`start`和`end`,表示从序列的开头到末尾进行切片。当`step`为负整数时,表示反向切片,这时`start`应该在`end`的右侧。
```python
列表切片
list1 = [0, 1, 2, 3, 4, 5]
从索引0开始,到索引3结束(不包含),步长为1
print(list1[0:3]) 输出 [0, 1, 2]
从索引0开始,到序列末尾结束,步长为2
print(list1[0::2]) 输出 [0, 2, 4]
从索引2开始,到序列末尾结束,步长为-1
print(list1[2::-1]) 输出 [5, 4, 3]
字符串切片
string1 = "Hello, World!"
从索引0开始,到索引5结束(不包含),步长为1
print(string1[0:5]) 输出 "Hello"
从索引0开始,到序列末尾结束,步长为2
print(string1[0::2]) 输出 "Hlo ol!"
从索引7开始,到序列末尾结束,步长为1
print(string1[7:]) 输出 "World!"
切片操作返回的是原序列的一个视图,因此对切片对象的修改会反映到原序列上。如果需要获得原序列的拷贝,可以使用`list.copy()`方法或切片操作`[:]`