众所周知切片方法适用于字符串,列表,元组。
以下几点我们首先了解一下
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)
注意:
左闭右开[开始索引, 结束索引)
开始索引 >= 范围 < 结束索引
起始
结束
位的前一位不包含结束位本身)
开始索引数字可以省略,冒号不能省略
结束索引数字可以省略,冒号不能省略
1
,如果连续切片,数字和冒号都可以省略