Python 中 14 个切片操作
切片(Slice)是一个取部分元素的操作,是 Python 中特有的功能。它可以操作 list、tuple、字符串。
Python 的切片非常灵活,一行代码就可以实现很多行循环才能完成的操作。切片操作的三个参数 [start: stop: step] ,其中 start 是切片的起始位置,stop 是切片的结束位置(不包括),step 可以不提供,默认值是 1,并且 step 可为负数(详细使用见下)
下面盘点下切片的常见操作。
1.
import numpy as np
L = np.random.randint(0,10,10)
print(L)
L1 = L[0:3]
print(L1)
输出为:
[8 5 5 6 8 9 0 9 3 0]
[8 5 5]
2.
切片左端点为 0,可省略
L2 = L[:3]
print(L2)
输出:
[1 2 7]
3.
每两个取一个
L3 = L[1:8:2]
print(L3)
输出:
[3 1 6 2]
4.
支持倒数切片,倒数第一个元素的索引是 -1
L4 = L[:-1]
print(L4)
输出:
[2 2 1 2 1 0 2 3 2]
5.
原样复制一个 list
L5 = L[:]
print(L5)
输出:
[9 5 6 5 6 5 7 8 6 5]
6.
起始索引和终止索引都省略,也就都为默认值,如下步长设置为 2 切取元素
L6 = L[::2]
print(L6)
输出:
[8 4 9 6 8]
7.
一行代码实现列表反转
L7 = L[::-1]
print(L7)
输出:
[5 5 8 2 9 3 9 1 0 9]
8.
步长为负数,实际上指明了一个逆向迭代器。如下逆向倒数,每两个取一个。
L8 = L[::-2]
print(L8)
输出:
[9 5 1 2 4]
9.
值得注意,Python 超出索引范围不报错
L9 = L[:12]
print(L9)
输出:
[9 9 3 5 4 2 3 2 5 7]
10.
步长 step 为 0,会报错.
L10 = L[::0]
print(L10)
输出
ValueError: slice step cannot be zero
11.
切片操作的三个参数可以用表达式
L11 = L[3%2:2*3+1]
print(L11)
输出
[1 3 1 2 2 2]
12.
连续切片操作
L12 = L[3%2:][:2*3+1]
print(L12)
输出:
[4 3 4 8 0 3 6]
13.
元组对象的切片操作
a = (0,1,2,3,4,5)
L13 = a[:3]
print(L13)
输出:
(0, 1, 2)
14.
字符串的切片
b = "abcdefg"
L14 = b[0:3]
print(L14)
输出
abc
以上就是 Python 切片常用的 14 个操作,希望能帮助到大家。
这个必须点赞👍