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)

注意:

   1.指定的区间属于 左闭右开[开始索引, 结束索引) => 开始索引 >= 范围 < 结束索引 

        从 起始 位开始,到 结束位的前一位 结束(不包含结束位本身)

   2.从头开始,开始索引 数字可以省略,冒号不能省略

   3.到末尾结束,结束索引 数字可以省略,冒号不能省略

   4.步长默认为 1,如果连续切片,数字和冒号都可以省略

posted @ 2020-03-13 17:04  ThreeCode  阅读(545)  评论(0编辑  收藏  举报