python切片操作
众所周知切片方法适用于字符串,列表,元组。
以下几点我们首先了解一下
1)切片使用索引值来限定范围
2)列表和元组都是有序集合,可以通过索引值获取相应数据
3)字典是一个无序集合,使用一个键值对保存数据
4)注意切片的结果不包含结束索引,即不包含最后的一位,-1代表列表的最后一个位置索引
我们再看一下切片使用格式:[开始索引:结束索引:步长]
format:【start:end:step】
start:起始索引,从0开始,-1表示结束。
end:结束索引。
step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值,默认为1。
下面以字符串为例,开始切片骚操作:
num_str = "0123456789" # 截取2-5的字符串 print(num_str[2:6]) 2345 # 截取2-末尾的字符串 print(num_str[2:]) 23456789 # 截取开始-5的字符串 print(num_str[:6]) 012345 print(num_str[0:6]) 012345 # 截取完整的字符串 print(num_str[:]) 0123456789 print(num_str[0:]) 0123456789 # 从开始位置,每隔一个字符截取字符串 print(num_str[::2]) 02468 print(num_str[0::2]) 02468 # 从索引1开始,每隔一个字符截取字符串 print(num_str[1::2]) 13579 # 截取从2-末尾-1的字符串 print(num_str[2:-1]) 2345678 # 截取字符串末尾两个字符 print(num_str[-2:]) 89 # 字符串的逆序!!! print(num_str[::-1]) 9876543210 print(num_str[-1::-1]) 9876543210
列表与元组同理,看以下示例:(ipython中操作)
In [2]: num_list = [0,1,2,3,4,5] # 列表 In [3]: print(num_list[:3]) [0, 1, 2] In [4]: print(num_list[:]) [0, 1, 2, 3, 4, 5] In [5]: print(num_list[::-1]) [5, 4, 3, 2, 1, 0] In [6]: print(num_list[::2]) [0, 2, 4] In [7]: num_tuple = (0,1,2,3,4,5) # 列表 In [8]: print(num_tuple[::2]) (0, 2, 4) In [9]: print(num_tuple[1:-1]) (1, 2, 3, 4) In [10]: print(num_tuple[::-1]) (5, 4, 3, 2, 1, 0) In [11]: print(num_tuple[-1::-1]) (5, 4, 3, 2, 1, 0)
注意:
从 起始
位开始,到 结束
位的前一位 结束(不包含结束位本身)
2.从头开始,开始索引 数字可以省略,冒号不能省略
3.到末尾结束,结束索引 数字可以省略,冒号不能省略
4.步长默认为 1
,如果连续切片,