hand
_1_5_81
4
返回栏目
1k
9k
1k
1k
5k
1k
1k
1k
1k
3k
2k
1k
0.8k
2k
3k
1k
1k
0.7k
0.9k
1k
0.6k
0.4k
0.4k
0.3k
3k
2k
9k
0.4k
0.4k
0.8k
0.5k
3k
5k
1k
2k
2k
3k
5k
1k
1k
0.4k
0.5k
0.4k
0.6k
0.7k
1k
0.4k
0.3k
4k
0.5k
0k
0.3k
0k
0.2k
0.2k
0.3k
0.9k
0.9k
0.1k
0.9k
0.9k
1k
0.5k
6k
0.3k
0.4k
0.7k
0.6k
8k
3k
1k
1k
1k
1k
0k
2k
1k
1k
0.2k
5k
4k
5k
0.4k
0.8k
1k
1k
1k
0.1k
2k
1k
2k
6k
0k
2k
7k
1k
5k
2k
3k
1k
0k
1k
0.9k
0.4k
0.2k
1k
3k
4k
1k
1k
1k
2k
3k
0.7k
0.3k
0.5k
0.6k
1k
0.9k
3k
0.3k
4k
返回python栏目
作者:
贺及楼
成为作者
更新日期:2024-12-27 14:12:52
Python 中的切片是一种获取序列(如列表、元组、字符串)部分元素的简洁方式。通过指定起始、结束和步长索引,切片允许你访问序列的子集。它非常强大,可以用于修改序列,如在列表中插入、删除或替换元素。切片还支持负索引和步长,使得可以从序列的末尾开始访问元素,或跳过某些元素。这一功能在数据处理、子序列提取和算法实现中非常有用。
python得切片功能非常实用,能够用简短的方式对字符串、列表进行截取操作
以下是python切片的使用例子汇总,方便大家学习查阅
格式:
数据[开始索引:结束索引:步长]
object[取:不取:方向]
object[start_index:end_index:step]
object[a:b:c]
object[a:b]
object[a]
object可以是列表、字符串、元组
a、b可以是正整数(正索引) 或者负整数(负索引)
step:正负数均可,其绝对值大小决定了切取数据时的“步长”,默认为1
正表示“从左往右”取值
负表示“从右往左”取值
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
c = "0123456789"
值 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
正索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
负索引 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
正方向切片:
代码 | 方向 | a列表效果 | b元组效果 | c字符串效果 | 解释 |
---|---|---|---|---|---|
a[0] | —> | 0 | (0) | "0" |
单切片 |
a[-4] | —> | 6 | (6) | "6" |
单切片 |
a[:3] | —> | [0,1,2] | (0,1,2) | "012" |
前切片,前3个 |
a[-3:] | —> | [7,8,9] | (7,8,9) | "789" |
后切片,后3个 |
a[:] | —> | [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] | (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) | "0123456789" |
全部切片 |
a[::] | —> | [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] | (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) | "0123456789" |
全部切片 |
a[6:] | —> | [6, 7, 8, 9] | (6, 7, 8, 9) | "6789" |
从start_index=6开始,到“终点” |
a[1:6] | —> | [1, 2, 3, 4, 5] | (1, 2, 3, 4, 5) | "12345" |
start_index=1到end_index=6 |
a[1:-6] | —> | [1, 2, 3] | (1, 2, 3) | "123" |
/ |
a[-6:] | —> | [4, 5, 6, 7, 8, 9] | (4, 5, 6, 7, 8, 9) | "456789" |
从start_index=-6开始,到“终点” |
a[-6:-1] | —> | [4, 5, 6, 7, 8] | (4, 5, 6, 7, 8) | ``"45678" |
/ |
a[::2] | —> | [0, 2, 4, 6, 8] | (0, 2, 4, 6, 8) | "02468" |
跳切 |
a[::3] | —> | [0, 3, 6, 9] | (0, 3, 6, 9) | "0369" |
跳切 |
a[6:2] | —> | [] | () | "" |
没取到数据 |
a[-1:-6] | —> | [] | () | "" |
没取到数据 |
a[-1:6] | —> | [] | () | "" |
没取到数据 |
a[:6] | —> | [0, 1, 2, 3, 4, 5] | (0, 1, 2, 3, 4, 5) | "012345" |
从“起点”值0开始,到end_index=6 |
a[:-6] | —> | [0, 1, 2, 3] | (0, 1, 2, 3) | "0123" |
/ |
反方向切片:
代码 | 方向 | a列表效果 | b元祖效果 | c字符串效果 | 解释 |
---|---|---|---|---|---|
a[6::-1] | <— | [6, 5, 4, 3, 2, 1, 0] | (6, 5, 4, 3, 2, 1, 0) | "6543210" |
从start_index=6开始,到“起点” |
a[-1:-6:-1] | <— | [9, 8, 7, 6, 5] | (9, 8, 7, 6, 5) | "98765" |
/ |
a[-6::-1] | <— | [4, 3, 2, 1, 0] | (4, 3, 2, 1, 0) | "43210" |
从start_index=-6开始,到“起点” |
a[-1:6:-1] | <— | [9, 8, 7] | (9, 8, 7) | "987" |
/ |
a[:-6:-1] | <— | [9, 8, 7, 6, 5] | (9, 8, 7, 6, 5) | "98765" |
从“终点”,到end_index=-6 |
a[:6:-1] | <— | [9, 8, 7] | [9, 8, 7) | "987" |
从“终点”值9开始,到end_index=6 |
a[::-1] | <— | [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] | (9, 8, 7, 6, 5, 4, 3, 2, 1, 0) | "9876543210" |
倒序 |
a[1:6:-1] | <— | [] | () | "" |
没取到数据 |
a[1:-6:-1] | <— | [] | () | "" |
没取到数据 |
a[:8][2:5][-1:]
[4]
相当于:
a[:8] = [0, 1, 2, 3, 4, 5, 6, 7]
a[:8][2:5] = [2, 3, 4]
a[:8][2:5][-1:] = [4]
理论上可无限次多层切片操作,只要上一次返回的是非空可切片对象即可。
a[2+1:3*2:1]
[3, 4, 5]
## 即:a[2+1:3*2:1] = a[3:6:1]
class slice(stop)
class slice(start, stop[, step])
参数说明:
start -- 起始位置
stop -- 结束位置
step -- 间距
>>>myslice = slice(5) # 设置截取5个元素的切片
>>> myslice
slice(None, 5, None)
>>> arr = range(10)
>>> arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> arr[myslice] # 截取 5 个元素
[0, 1, 2, 3, 4]
python
整章节共122节
快分享给你的小伙伴吧 ~