zoukankan      html  css  js  c++  java
  • python切片

    切片就是一种截取索引片段的技术,借助切片我们可以十分灵活地处理序列类型的对象,切片是在列表中最能发挥其用处的:

    切片的格式为:[i:i+n:m]  i代表切片的起始索引值,如为列表首位时可省略(li[:x]),i+n为切片的结束位置,为列表未位时可以省略(li[0:]),m为步长也就是间隔多长(li[0:10:2] 步长为2,当步长为空时默认为1 ,不允许为0),下面以实际举例来说明.

    一、切片初级段注意事项:

    切片遵循 左闭右开格式 

        print(li[0:3])  # 左闭右开  0 ,1 ,2

    下面以实际举例说明:

    li=[1,4,5,6,7,9,11,14,16]

    表示整个列表的格式:

    li[0:x] ==li[0:]==li[:x] = =li[:]==li[::]

    li[1:5] ==[4,5,6,7]#从索引1开始取5-1位元素

    li[1:5:2] ==[4,6]#从索引1开始取5-1位元素,按2间隔过滤

    li[-1:]==[16]#取倒数第一个元素

    li[-4:-2] ==[9,11]#从倒数第四起,取-2-(-4)=2位元素 

    li[:-2]==li[1,4,5,6,7,9,11]==li[-len(li):-2]#从头开始,取-2-(-len(li))=7位元素

    #当步长为负数时,列表先翻转,再截取

    li[::-1]==[16,14,11,9,7,6,5,4,1] #翻转整个列表

    li[::-2] ==[16,11,7,5,1]#翻转整个列表再按步长为2进行取值或过滤

    li[:-5:-1] ==[16, 14, 11, 9]#翻转整个列表,取-5-(-len(li))=4位元素

    li[:-5:-3] ==[16, 9]#翻转整个列表,取-5-(-len(li))=4位元素,再按3间隔进行过滤

    初级切片小总结:1、一定要牢记公式,当出现缺省值时,记得要补全。2 索引步长为负数时,一定要翻转,也就是按倒数索引位置计算

    最后总结概括含义为(li[i:i+n:m]):从序列的第i位索引起,向右取到后n位元素为止(不包括n的元素),按m间隔过滤

    二、切片高级级段:

    一般来说,切片操作的返回结果是一个新的独立的序列,列表切片后得到的还是一个列表,占有新的内存,因此它也可以用来赋值,也可传递值,但是只是浅拷贝,当拷贝的原列表中元素变长时,新列表将受制于原列表.

    li = [1,2,3,4]

    ls = li[::]

    li ==ls #True

    id(li) == id(ls)#false

    li.append(li[2:4]) ==[1,2,3,4,[3,4]]

    li.extend(ls[2:4]) #[1,2,3,4,3,4]

    #切片受制于原列表

    lo=[1,[1,1],2,3]

    lp = lo[:2] #[1,[1,1]]

    lo[1].append(1)#[1,[1,1,1],2,3]

    可以看出将结果取出独立对象使用,

  • 相关阅读:
    小程序购物车页面样式
    用css让div高度自动撑满屏幕
    客户端封装浏览器
    vuex模块的普通用法
    vue图片预览
    Django中Cookie和Session配置和操作
    jira的插件开发流程实践
    python3.7安装模块MySQLdb报错error: Microsoft Visual C++ 14.0 is required.
    Hadoop2.9下运行JAR包时System.out.println的输出日志
    MapReduce程序——WordCount(Windows_Eclipse + Ubuntu14.04_Hadoop2.9.0)
  • 原文地址:https://www.cnblogs.com/zbligang/p/10411092.html
Copyright © 2011-2022 走看看