在Python中,切片是一种非常灵活的操作,可以用来从序列(如字符串、列表、元组等)中提取子序列。以下是切片的一些基本用法:
基本切片
使用`[start:end]`或`[start:end:step]`的形式对序列进行切片。
`start`表示起始索引(包含),默认为0。
`end`表示结束索引(不包含),默认为序列的长度。
`step`表示步长(可选),默认为1。
示例:
my_list = [1, 2, 3, 4, 5]
sub_list = my_list[1:4] 提取从索引1到索引3(不包含)的元素
print(sub_list) 输出: [2, 3, 4]
```
省略起始或结束索引
`sequence[:stop]`:从开头到`stop-1`。
`sequence[start:]`:从`start`到末尾。
示例:
my_list = [1, 2, 3, 4, 5]
sub_list1 = my_list[:3] 提取从开头到索引2(不包含)的元素
print(sub_list1) 输出: [1, 2, 3]
sub_list2 = my_list[2:] 提取从索引2到末尾的元素
print(sub_list2) 输出: [3, 4, 5]
```
带步长的切片
`sequence[start:stop:step]`:从`start`到`stop-1`,以`step`为步长。
示例:
my_list = [1, 2, 3, 4, 5]
sub_list = my_list[1:4:2] 提取从索引1到索引3(不包含),步长为2的元素
print(sub_list) 输出: [2, 4]
```
逆向遍历
`sequence[::-1]`:逆向遍历整个序列。
示例:
my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1] 逆向遍历整个列表
print(reversed_list) 输出: [5, 4, 3, 2, 1]
```
切片赋值
可以使用切片来同时修改序列中的多个元素的值。
示例:
my_list = [1, 2, 3, 4, 5]
my_list[1:4] = [99, 88, 77] 修改索引1到索引3(不包含)的元素
print(my_list) 输出: [1, 99, 88, 77, 5]
```
切片对象
使用`slice()`函数创建切片对象,然后使用该对象对序列进行切片操作。
示例:
my_list = [1, 2, 3, 4, 5]
slice_obj = slice(1, 4)
sub_list = my_list[slice_obj] 使用切片对象进行切片
print(sub_list) 输出: [2, 3, 4]
```
切片删除
可以使用`del`语句和切片来删除序列中的多个元素。
示例:
my_list = [1, 2, 3, 4, 5]
del my_list[1:3] 删除索引1到索引2(不包含)的元素
print(my_list) 输出: [1, 4, 5]
```
切片扩展和复制
`sequence[:]`:复制整个序列。
示例: