python 切片
使用格式
python切片使用范围包括:列表,元组,字符串
为什么切片和 区间会忽视最后一个元素
例如:
L=[1,2,3,4,5,6]
L[:2]#在下标为2的地方分割
[1, 2]
只是因为python、c和其它语言一样下标都从0开始。
好处:
- 可以快速看出切片和区间有几个元素,如range(3)和my_list[:3]都返回3个元素。
- 可以快速看出切片区间和长度
- 可以用任意一个下标,获得不重复的片段,如
>>>L=[20,30,40,50,60,70]
>>>L[:2]
[20,30]
>>>L[2:]
[40,50,60,70]
对对象进行切片
我们可以用s[a:b;c]对s对象进行在a和b的区间以间隔为c的间隔取值,且c可以为负数,负数代表反过来取值
>>>L=[20,30,40,50,60,70,80]
>>>L[::-1]
[80,70,60,50,40,30,20]
>>>L[2::2]
[40,60,80]
多维切片和省略
[]运算符可以使用逗号分开多个索引或者切片,numpy的库就用到这个特性。
X=[[1,2,3,4],[5,6,7,8],[9,0,11,12]]
'列表调用多维值'
X[2][2]
'输出'
11
'列表转换为数组'
X=np.array(X)
'数组调用多维值'
X[2][2]
'输出'
11
'还可以是这样的'
X[2,2]
'输出'
11
给切片赋值
把切片放在赋值语句左边,或者做为del操作对象 时,我们可以对序列进行嫁接,切除,修改操作。
注意:如果赋值的对象是切片,那么右侧的赋值语句必须是可迭代的对象。如:
L=[20,30,40,50,60,70,80]
L[2:3]=100
'会出现下文的错误’
TypeError Traceback (most recent call last)
<ipython-input-19-ce8f28f73e75> in <module>
1 L=[20,30,40,50,60,70,80]
----> 2 L[2:3]=100
3
4
TypeError: can only assign an iterable
'正确的使用方法是'
L[2:3]=[100]
>>>[20, 30, 100, 50, 60, 70, 80]