python
中切片是用来切割可迭代对象(容器)
一个完整的切片是包含三个参数和两个冒号
start:
切片的起始位置,如果没有值的话从头开始
end
:切片的结束位置,但是不包含
end
(前闭后开),如果没有值的话表示切割到结束为止
step
:步长,默认取值为
1
,如果为正数的情况表示从左往右,如果为负数表示从右往左
object[start:]:
表示从
start
开始切割到结束为止,从左往右
obeject[:end]
:表示从开始切割到
end
为止,但是不包含
end,
从左往右
obeject[start:end]
:表示从
start
开始到
end
结束,但是不包含
end,
从左往右
object[start:end:step]:
表示从
start
开始到
end
结束,但是不包含
end,step
为正从左往右,负从右往
左
1.
切割单个值
>>>
a
= [
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[
0
]
0
>>>
a
[
4
]
4
2.
切割完整对象
>>>
a
[:]
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[::]
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[::
-
1
]
[
9
,
8
,
7
,
6
,
5
,
4
,
3
,
2
,
1
,
0
3. start
和
end
全部取正数的情况
>>>
a
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[
1
:
6
]
[
1
,
2
,
3
,
4
,
5
]
>>>
a
[
1
:
6
:
-
1
]
[]
>>>
a
[
6
:
1
:
-
1
]
[
6
,
5
,
4
,
3
,
2
]
>>>
a
[:
6
]
[
0
,
1
,
2
,
3
,
4
,
5
]
>>>
a
[:
6
:
-
1
]
[
9
,
8
,
7
]
>>>
a
[
6
:]
[
6
,
7
,
8
,
9
]
>>>
a
[
6
::
-
1
]
[
6
,
5
,
4
,
3
,
2
,
1
,
0
]
4.start
和
end
全部取负数的情况
>>>
a
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[:
-
6
]
[
0
,
1
,
2
,
3
]
>>>
a
[
-
1
:
-
6
]
[]
>>>
a
[
-
1
:
-
6
:
-
1
]
[
9
,
8
,
7
,
6
,
5
]
>>>
a
[
-
6
:
-
1
]
[
4
,
5
,
6
,
7
,
8
]
>>>
a
[:
-
6
:
-
1
]
[
9
,
8
,
7
,
6
,
5
]
>>>
a
[
-
6
:]
[
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[
-
6
::
-
1
]
[
4
,
3
,
2
,
1
,
0
]
5. start
和
end
正负混合情况
>>>
a
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[
1
:
-
6
]
[
1
,
2
,
3
]
>>>
a
[
1
:
-
6
:
-
1
]
[]
>>>
a
[
-
1
:
6
]
[]
>>>
a
[
-
1
:
6
:
-
1
]
[
9
,
8
,
7
]
6.
连续的切片操作
>>>
a
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[:
8
][
2
:
5
][
-
1
:]
[
4
]
a
[:
8
]
----
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
]
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
][
2
:
5
]
----
[
2
,
3
,
4
]
[
2
,
3
,
4
][
-
1
:]
----
[
4
]
7.
切片中的三个参数为表达式
>>>
a
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
>>>
a
[
1
+
2
:
2
*
3
:
7
%
2
]
[
3
,
4
,
5
]
8.
切片可以操作其他的对象
>>>
t
= (
1
,
2
,
3
,
4
,
5
)
>>>
t
[
1
:
3
]
(
2
,
3
)
>>>
s
=
"ACDRF"
>>>
s
[
1
:
3
]
'CD'
>>>
for
i
in
range
(
0
,
100
):
...
print
(
i
)
...
>>>
for
i
in
range
(
0
,
100
)[
2
::
3
][
-
10
:]:
...
print
(
i
)
...
71
74
77
80
83
86
89
92
95
98
(1). 如果进行切片操作的时候,超出下标不会报错
(2).
如果切片操作的时候方向相互矛盾的话,不会报错,返回的空
(3).
在
python
中进行反向输出列表