python中切片操作,python切片菜鸟教程
所谓切片,就是从某个数据中提取出需要的部分,提取的值就是某个索引下的值或者索引区间的值。下面这篇文章主要介绍python切片操作方法的相关信息,通过示例代码介绍的非常详细,有需要的朋友可以参考一下。
00-1010前言1。切片2的两个索引方向。切片的操作方法3。一些基本操作1。切割单个物体2。切割整个列表3。在某些情况下,步长的正值和负值决定了索引方向4。高级操作1。修改元素值2。替换元素值3。插入元素值4。选择切片位置。摘要文章参考来自:链接。
目录
最近学了python切片,有时候稀里糊涂的。今天,我终于弄明白了我在python切片,经常想知道的事情,并把它记录下来,以便以后查看。
前言
如果你掌握了切片方法,你就可以随意切掉所有的目标值。但是鹅可以切片的目标对象有两个索引方向:正索引和负索引.如下图所示,
以a=[0,1,2,3,4,5,6,7,8,9]为例:
这个字符串A的正下标从左到右,头下标为0,尾下标为9;
它的负下标从右到左,头下标为-1,尾下标为-10。
一、切片的2种索引方向
要成功完成切片,需要包含两个:符号和三个参数,即start_index、end_index和step。完整的切片表达式如下:
操作基本表达式:object[start _ index 3360 end _ index 3360 step]
1.开始索引 start_index:它表示切片的起始位置,切片结果包含该索引下的值;
2.终止索引 end_index:表示的结束切片位置,切片结果不包含该索引下的值;
3.步长step:表示切削步长值,可正可负,step为正时,索引方向为正方向,step为负时,索引方向为负方向.当步长值省略时,缺省值为1。
记住:步长正负决定切片方向,非常重要!!
当start_index和end_index的值没有被写入时,它们都是默认的,从索引的端点处开始.
二、切片的操作方式
下面的例子都在列表a=[0,1,2,3,4,5,6,7,8,9]中
三、一些基本操作
取切割指数为3的位置对应的值:
1、切取单个对象
不填值的时候,从终点开始。
2、切取整个列表
Step=1,从左到右,包括start_index=1索引本身包含的值,不包括end_index=5索引本身包含的值。
//突出显示的块
[1: 5: ]
[1, 2, 3, 4]
# Step step=1,默认值,这是从左到右的索引方向。
Step=-1,从右到左,仍然不包含终止索引=5本身包含的值。
//突出显示的块
[ : 5 :-1]
[9, 8, 7, 6]
>>> # 步长step= -1,负索引,
起始索引没写,表示从端点开始由右往左,终止索引是5
索引方向相互矛盾,值为空
// An highlighted block>>> a [7 : 2 ]
[]
>>> # 这是因为起始索引为7终止索引为2,方向是由右往左,
>但是步长step默认是1,表示正索引,由左往右,两者方向矛盾值为空
索引值为负的情况,一切以step值正负为准,决定索引方向!
// An highlighted block>>> a [ -6 : :]
[4, 5, 6, 7, 8, 9]
>>> #起始于 start_index = -6,步长为1,由左向右
根据前面所学,切片结果包含起始索引位置的值,但不包含终止索引位置的值,这种情况指的是给定了具体的终止索引,如下:
// An highlighted block>>> #给了明确的终止索引位置,那结果就不包含终止索引本身的值
如下不包含end_index = 5位置上的值
>>> a [ : 5 : -1 ]
[9, 8, 7, 6]
这个案列是包含了终止索引位置的值,参照上条加入对比。
也就是说,指定了具体的终止索引位置,那么取值不包括这个位置上的值,如果没指定,默认终止索引就在端点处,那么取值包括该位置的值
// An highlighted block>>> a [ 5: : -1]
[5, 4, 3, 2, 1, 0]
>>> #没有指定具体的终止索引位置,所以默认终止于端点处,
因此包含端点处的值,即0
四、进阶操作
1.修改某个元素值
直接将修改后的值带入进索引里面
// An highlighted block>>> a [ 2 ] = [ A ]
>>> print (a)
[0, 1, [A], 3, 4, 5, 6, 7, 8, 9]
#直接在需要修改的索引处赋值,将索引值 = 2的值修改为[A]
2.替换元素值
是从起始索引开始,包含起始索引本身的值,将数值插入,然后再将终止索引本身及以后的值,紧跟在插入数值后面就行了,不包含终止索引本身。下面以替代索引3和5之间的元素为案例分析
包含 起始索引=3 的元素本身,不包含终止索引 = 5的元素本身,元素个数应该是2个。
(1)给定替换的元素个数 = 2
// An highlighted block>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print (a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a [ 3: 5] = [ b, c]
>>> print (a)
[0, 1, 2, b, c, 5, 6, 7, 8, 9]
>>> #替代写法,将起始索引本身的值到终止索引前一个索引之间的值进行替换,
>终止索引本身的数值不替换
(2)给定替换的元素个数 > 2个
// An highlighted block>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print (a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a [ 3: 5 ] = [ b, c, d, e]
>>> print (a)
[0, 1, 2, b, c, d, e, 5, 6, 7, 8, 9]
>>> #插入写法,从开始索引为3的地方带入插入值,带入插入数值后,
将索引值为5的值本身及其后面的值紧跟着排列在后就行
(3)给定替换的元素个数 < 2。
// An highlighted block>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print (a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a [ 3: 5 ] = [ b ]
>>> print (a)
[0, 1, 2, b, 5, 6, 7, 8, 9]
>>> # 替换了起始索引 = 3本身的值,
>终止索引=5及其以后的值都紧跟在插入值后面,
>索引=4处的值伴随着索引 = 3的值一起被替换掉了
3、插入元素值
切片这里,最困惑的就是没理解替换元素值、和插入元素值两者的区别,现在恍然大悟,替换的原理如上所述,接下来插入元素值其实很简单,只要保持,终止索引、起始索引是同一个值再进行赋值就可以了
(1)插入一个元素
// An highlighted block>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print (a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a [6:6 ] = [c, d, e, f,g]
>>> print (a)
[0, 1, 2, 3, 4, b, c, d, e, f, g, 5, 6, 7, 8, 9]
>>> #插入多个元素,其他原本的元素值和个数都不发生改变
(2)插入多个元素,甚至字符串
// An highlighted block>>> a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print (a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a [ 3: 3] = [ hello , world!]
>>> print (a)
[0, 1, 2, hello , world!, 3, 4, 5, 6, 7, 8, 9]
4、选择切片位置
(1)取索引值为偶数的位置进行切片
// An highlighted block>>> a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a [ : : 2]
[0, 2, 4, 6, 8]
>>> # 选取索引值为偶数的位置进行切片
(2)选取索引值为奇数的位置进行切片
// An highlighted block>>> a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a [ 1: :2]
[1, 3, 5, 7, 9]
>>> # 选取索引值为奇数的位置进行切片
综上,就是今天学习python切片的小结,记录完成!
总结
到此这篇关于python切片操作方法的文章就介绍到这了,更多相关python切片操作方法内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。