python——对列表的操作

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在python中会出现[-1]、[:-1]、[::-1]、[n::-1]、[:,:,0]、[…,0]、[…,::-1]等等操作


下面我们就对python中出现的上述一系列操作进行详细介绍

一、[-1]

原型[-n]:列表倒数第n项

例:

c=[1,2,3,4,5,6,7]
c[-1]       #倒数第1项
Out:   7
c[-2]			#倒数第2项
Out:   6
c[-3]
Out:   5
...
c[-7]
Out:   1    #倒数第7项,也就是第一项

二、[:-1]

原型[m:n]:m项可以取到,n项不可取到
c=[1,2,3,4,5,6,7]
c[0:6]
Out:   [1, 2, 3, 4, 5, 6]
c[0:-1]      #当n=0时可以省略,即c[:-1]
Out:   [1, 2, 3, 4, 5, 6]
c[:-2]        #从0到倒数第二项,且倒数第二项取不到
Out:   [1, 2, 3, 4, 5]
c[2:5]       #从第2项取到第五项,且第五项取不到
Out:   [3, 4, 5]
c[1:2]
Out:   [2]

三、[::-1]

代码如下(示例):
原型[n:m:k]:n代表的是取值开始的索引,因此该索引必将被取到,m代表的是取值结束的索引,和上面一样,该值不能被取到。k代表的是间隔,间隔可正可负,正值代表正向顺序跳取,负值代表反向跳取。
需要注意的是,当k为正的时候起始索引应该小于结束索引;当k为负的时候起始索引应该大于结束索引,因为在倒序来看,首先是索引值大的被取到,然后才是索引值小的

c=[1,2,3,4,5,6,7]
c[2:5:1]
Out:   [3, 4, 5]
c[5:2:-1]
Out:   [6, 5, 4]
c[2::1]        #不填默认是从第2项到最后一项
Out:   [3, 4, 5, 6, 7]
c[::1]        #不填由于后面是+1,所以默认是从头到尾
Out:   [1, 2, 3, 4, 5, 6, 7]
c[4::-1]   #不填默认是从第4项到头
Out:   [5, 4, 3, 2, 1]
c[::-1]     #不填由于后面是-1,所以默认是从尾到头
Out:   [7, 6, 5, 4, 3, 2, 1]

#默认值是随着后面k的正负来变化的

四、[:,:,0]

多了个逗号,这个方法就和前面的有所不同了。它是对多维数据的一种处理方式,代表了前两维全选,取其中的所有0号索引。 原型是[n:m, j:k, g:h],当然维度可以更多,在图片处理中,一般用到的就是三维的。看a数组的模样就可以看出来,nm管最外层列表的取值,从第n个元素到第m个元素,前闭后开;jk管nm取中的元素的列表中的元素的选取,也是前闭后开,gh管jk取中元素的列表中的元素的选取,任意一对都可以是个整数用来直接取某个索引,这和前两个很像。

五、[…,0]

代表了取最里边一层的所有第0号元素,…代表了对:,:,:,的省略。注意只能进行一次省略,不能是[… , …],全省略那不就是 a 吗。

a = np.array( [[[1,2,3],[4,5,6],[7,8,9]],
              [[10,11,12],[13,14,15],[16,17,18]],
              [[19,20,21],[22,23,24],[25,26,27]]])

#3*3*3的数组
a.[...,0]
Out:   array([[ 1,  4,  7],
              [10, 13, 16],
              [19, 22, 25]])
 a[:,0,:]
 Out:   array([[ 1,  2,  3],
               [10, 11, 12],
               [19, 20, 21]])
a[0,...]
Out:   array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])

[…,::-1],代表把最里面一层的值倒转过来

a = np.array( [[[1,2,3],[4,5,6],[7,8,9]],
              [[10,11,12],[13,14,15],[16,17,18]],
              [[19,20,21],[22,23,24],[25,26,27]]])

a[...,::-1]
Out:   array([[[ 3,  2,  1],
               [ 6,  5,  4],
               [ 9,  8,  7]],

              [[12, 11, 10],
               [15, 14, 13],
               [18, 17, 16]],

              [[21, 20, 19],
               [24, 23, 22],
               [27, 26, 25]]])


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炼丹师小米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值