python之数据切片操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 对list进行切片,从1开始,4结束,步长1
my_list = [0, 1, 2, 3, 4, 5, 6]
result1 = my_list[1:4] # 步长默认是1,所以可以省略不写
"""
打印结果为:[1, 2, 3]
"""

# 对tuple进行切片,从头开始,到最后结束,步长1
my_tuple = (0, 1, 2, 3, 4, 5, 6)
result2 = my_tuple[:] # 起始和结束不写表示从头到尾,步长为1可以省略
"""
打印结果为:(0, 1, 2, 3, 4, 5, 6)
"""

# 对str进行切片,从头开始,到最后结束,步长2
my_str = "01234567"
result3 = my_str[::2]
"""
打印结果为:0246
"""


# 对str进行切片,从头开始,到最后结束,步长-1
my_str = "01234567"
result4 = my_str[::-1] # 等同于将序列反转了
"""
打印结果为:76543210
"""


# 对列表进行切片,从3开始,到1结束,步长-1
my_list = [0, 1, 2, 3, 4, 5, 6]
result5 = my_list[3:1:-1]
"""
打印结果为:[3, 2]
"""


# 对元组进行切片,从头开始,到尾结束,步长-2
my_tuple = (0, 1, 2, 3, 4, 5, 6)
result6 = my_tuple[::-2]
"""
打印结果为:(6, 4, 2, 0)
"""
1
2
3
4
5
6
7
8
9
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
1. 起始下标表示从何处开始,可以留空,留空视作从头开始
2. 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
3. 步长表示,依次取元素的间隔
* 步长1表示,一个个取元素
* 步长2表示,每次跳过1个元素取
* 步长N表示,每次跳过N-1个元素取
* 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)