精华内容
下载资源
问答
  • 这篇文章主要介绍了Python列表切片用法,结合实例形式分析了Python列表切片的常见操作方法及相关注意事项,需要的朋友可以参考下本文实例讲述了Python列表切片用法。分享给大家供大家参考,具体如下:Python中符合序列...

    这篇文章主要介绍了Python列表切片用法,结合实例形式分析了Python列表切片的常见操作方法及相关注意事项,需要的朋友可以参考下

    本文实例讲述了Python列表切片用法。分享给大家供大家参考,具体如下:

    Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。

    格式:【start:end:step】

    start:起始索引,从0开始,-1表示结束

    end:结束索引

    step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值

    注意切片的结果不包含结束索引,即不包含最后的一位,-1代表列表的最后一个位置索引a=[1,2,3,4,5,6]

    b1=a[:] #省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表

    print(b1)

    结果:[1, 2, 3, 4, 5, 6]b=a[0:-1:1] #从位置0开始到结束,每次增加1,截取。不包含结束索引位置

    print(b)

    结果:[1, 2, 3, 4, 5]c1=a[:3] #省略起始位置的索引,以及步长。默认起始位置从头开始,默认步长为1,结束位置索引为3

    print(c1)

    结果:[1, 2, 3]c=a[0:5:3] #从第一个位置到第留给位置,每3个取一个值

    print(c)

    结果:[1, 4]d=a[5:0:-1] #反向取值

    print(d)

    结果:[6, 5, 4, 3, 2]d1=a[::-1]

    print(d1)

    结果:[6, 5, 4, 3, 2, 1]

    以上就是Python关于列表切片的详解介绍的详细内容,更多请关注Gxl网其它相关文章!

    本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

    本文系统来源:php中文网

    展开全文
  • Python列表切片详解

    2020-10-16 19:53:40
    Python列表切片详解[] [:] [::] 简介 Python切片是list的一项基本的功能,类似的代码 a = list[::10] — 《Python核心编程中文版(第二版)》 解释一下[::n]的意思 >>> s = 'abcdefgh' >>>...

    Python列表切片详解[] [:] [::]

    简介

    Python切片是list的一项基本的功能,类似的代码

    a = list[::10]

    — 《Python核心编程中文版(第二版)》

    解释一下[::n]的意思

    >>> s = 'abcdefgh'
    >>> s[::-1] # 可以视为翻转操作
    output: 'hgfedcba'
    >>>  s[::2]
    output: 'aceg'

    序列

    • 每一个元素通过指定一个偏移量的方式得到

    • 下标偏移量是从0开始到总元素数-1结束

    序列类型操作符

    序列操作符作用
    seq[ind]获取下标为ind的元素
    seq[ind1:ind2]获取下标从ind1到ind2间的元素集合
    seq * expr序列重复expr次
    seq1 + seq2连接序列seq1和seq2
    obj in seq判断obje元素是否包含在seq中
    obj not in seq判断obj元素是否不包含在seq中

    切片操作符([], [:], [::]

    • 序列类型即包含一些顺序排列的对象的一个结构

    • 访问一个数据元素的语法如下

      sequence[index]

       

    • index是想要访问的元素对应的偏移量,

      • 可以为正:​

      • 可以为负:​,

    • 正索引以序列的开始为起点

    • 负索引以序列的结束为终点

    • 切片:一次性得到多个元素

       sequence[starting_index:ending_index]
      • 通过这种方式可以得到从起始索引到结束索引之间的一“片”元素(不包含结束索引对应的元素)

      • 具体方式

        • 整个切片:[:]

        • 部分切片:[0:3]

    • 用步长索引来进行扩展的切片操作

      • 多出来的第三个索引值被用做步长参数

      • 可以和range()中的步长参数,或者C/C++中的for语句中的步长参数类比

         >>> s = 'abcdefgh'
         >>> s[::-1] # 可以视作“翻转”操作
         'hgfedcba'
         >>> s[::2] # 隔一个取一个的操作
         'aceg'

         

    更多内容

    • 切片索引的语法要比简单的单一元素索引灵活的多

    • 开始和结束索引值可以超过字符串的长度,

      • 即起始索引可以小于0,而对于结束索引,索引值为100的元素不存在并不会报错,即用100来作为一个长度不到100的序列的结束索引不会有什么问题

         >>> s = 'abcde'
         >>> i = -1
         >>> for i in range(-1, -len(s), -1)
                 print(s[:i])
             abcd
             abc
             ab
             a

         

      • 问题是:如何在第一次迭代的时候显示整个字符串呢?是否一种方法不用在整个循环之前加入一个额外的print方法?如何定义一个索引,代表整个的序列?

        • 方案:使用另外一个小技巧:用None作为索引值,比如,在想用要给变量作为索引来从第一个到遍历最后一个元素的时候:

           >>> s = 'abcde'
           >>> for i in [None] + range(-1, -len(s), -1):
                   print(s[:i])
           output:
               abcde
               abcd
               abc
               ab
               a

           

        • 现在这个程序符合要求了。

        • 另外一种方法:先创建一个只包含None的列表,然后用extend()函数把range()的输出添加到这个列表,或者先建立range()输出组成的列表然后再把`None插入到这个列表的最前面,然后对这个列表进行遍历

          • 然而,可变对象的内建函数extend()根本就没有返回值,此方法不通

             >>> for i in [None].extend(range(-1, -len(s), -1)):
                     print(s[:i])
             output:
                 error
             >>> for i in range(-1, -len(s), -1).extend([None]):
                     print(s[:i])
             正常输出
          • 错误发生的原因在于:[None].extend(…)

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 今天小编就为大家分享一篇python列表切片和嵌套列表取值操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 本文通过一个简单的例子讲解切片的应用:先构造一个list列表a:a = list(range(1,8)) # [1, 2, 3, 4, 5, 6, 7]切片的使用可以看做 [start:end:interval],三者的取值可正可负。其中,start、end、interval有时候可以...

    本文通过一个简单的例子讲解切片的应用:

    先构造一个list列表a:

    a = list(range(1,8)) # [1, 2, 3, 4, 5, 6, 7]

    切片的使用可以看做 [start:end:interval],三者的取值可正可负。其中,start、end、interval有时候可以省略。

    列表a中每个数字对应正、负两个索引,如 a[2] = a[-5] = 3,这是因为在python中,第一个元素对应的下标为0,最后一个元素对应的下标为-1,所以从对于3这个数字,从左往右索引就是2,从右往左索引就是-5。

    值得注意的是,interval中的正负号规定了取数的方向是从左到右(+)还是从右到左(-)。如果有interval,先确定其方向(没有的话默认为从左到右取数)。

    切片的应用:

    a[:3] # [1,2,3] 即索引是 [0,3) => a[0]、a[1]、a[2]

    a[:-5] # [1,2] 等价于 a[:(-5+a中元素个数7)] = a[:2] = [1,2]

    a[:5:2] # [1,3,5] 先取前5个元素,然后按照间隔2取数

    a[:4:-1] # [7,6] 先看interval为负值,故从左往右取,取到下标为4的前一个为止,即能取到a[6]、a[5]

    a[:3:-2] # [7,5] 先看interval为负值,故从右往左取,取到下标为3的前一个为止,即能取到a[6]、a[5]、a[4],然后按照间隔2取数

    a[:-5:-1] # [7,6,5,4] 先看interval为负值,故从右往左取,取到下标为-5的前一个为止,即能取到a[-1]、a[-2]、a[-3]、a[-4]

    a[:10] # [1,2,3,4,5,6,7] 即索引是 [0,10),超过不报错

    a[:10:-1] # [] 先看interval为负值,故从右往左取,取到下标为10的前一个为止,但是从左到右取最大的下标也才是a[6],故返回[]

    a[:-100:-1] # [7,6,5,4,3,2,1] 先看interval为负值,故从右往左取,取到下标为-100的前一个为止,即能取到a[-1]、a[-2]、a[-3]、a[-4]、a[-5]、a[-6]、a[-7]

    a[::-1] # [7,6,5,4,3,2,1] 先看interval为负值,故从左往右取,取到头(因为end没有指定)为止,即能取到a[-1]、a[-2]、a[-3]、a[-4]、a[-5]、a[-6]、a[-7] ,该方法也是list反转的方法

    a[::2] # [1,3,5,7] 每隔2个元素取数

    a[3::2] # [4,6] 从a[3]=4开始,每隔2个元素取数

    现在检验学习成果:

    a[:-2] # [1,2,3,4,5]

    a[-6:10] # [2,3,4,5,6,7]

    a[-4::-1] # [4,3,2,1]

    a[-1:-5:-2] # [7,5]

    b = a[:4] + a[5:] # [1, 2, 3, 4, 6, 7],切片法去除list中一个元素

    欢迎补充!

    展开全文
  • python 切片详解

    千次阅读 2019-03-21 15:34:47
    python 高级 切片技术详解

    Python 切片

    • 切片的语法

      • [起始:结束:步长],也可以简化使用[起始:结束]
      #定义一个list
      >>> list_arr = ['Michael','Joker','Tracy']
      >>> list_arr[0:3]
      ['Michael', 'Joker', 'Tracy']
      

      list_arr[0:3]表示,从索引0开始取,直到索引3为止,担不包括索引3。即索引012,正好是3个元素。

    • 如果第一个索引是0,还可以省略

      >>> list_arr[:3]
      
    • 也可以从索引1开始,取出2个元素出来

      >>> list_arr[1:3]
      ['Joker', 'Tracy']
      >>> 
      
    • 类似的,既然python支持list_arr[-1]取倒数第一个元素,那么它同样支持倒数切片,那咱们试一试:

      >>> list_arr
      ['Michael', 'Joker', 'Tracy']
      >>> list_arr[-1]
      'Tracy'
      >>> list_arr[-1:]
      ['Tracy']
      >>> list_arr[:-1]
      ['Michael', 'Joker']
      >>> list_arr[:-2:]
      ['Michael']
      >>> list_arr[-2:]
      ['Joker', 'Tracy']
      >>> list_arr[-2:-1]
      ['Joker']
      >>> 
      
    • 字符串处理

      s = 'hello word!'
      print(s[4])
      
      print(s)
      
      print(s[3:7])  # 结果元素里包含下标 3,不含下标 7
      
      print(s[:]) # 取出所有元素(没有起始位和结束位之分),默认步长为1
      
      print(s[1:]) # 从下标为1开始,取出 后面所有的元素(没有结束位)
      
      print(s[:5])  # 从起始位置开始,取到 下标为5的前一个元素(不包括结束位本身)
      
      print(s[:-1]) # 从起始位置开始,取到 倒数第一个元素(不包括结束位本身)
      
      print(s[-4:-1]) # 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)
      
      print(s[1:5:2]) # 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)
      
      # python 字符串快速逆置
      print(s[::-1])  # 从后向前,按步长为1进行取值
      
    展开全文
  • Python切片透彻详解

    2020-08-04 00:58:04
    文章目录1、python切片概述2、以list为例演示切片操作3、使用切片列表增加元素4、使用切片替换和修改5、使用切片删除列表中的元素6、其他对象的切片操作 1、python切片概述 在形式上,切片使用2个冒号分隔的3个...
  • Python切片详解

    2021-01-17 20:40:21
    Python切片详解       利用python解决问题的过程中,经常会遇到从某个对象中抽取部分值的情况。“切片”操作正是专门用于实现这一目标的有力武器。理论上,只要条件表达式得当,可以通过单次或多次...
  • python切片操作详解

    2021-01-21 10:20:33
    任何一个切片操作转化为一个基本表达式:object[start_index:end_index:step] start_index:起始点下标,若空为起始端点 end_index:终止点下标,若空为终点下标 step:表示步长,默认值为1,负值为反方向步长 使用案例 a...
  • python切片及sys.argv[]用法详解一、python切片a=a[::-1] 倒序a=a[1:10:2] 下标1~10,以2间隔取a=a[::2] 2间隔返回a[:]a=[1,2,3,4,5,6,7]print(a[::2])[1,3,5,7]二、sys.argv[]用法Sys.argv[]是用来获取命令行参数的...
  • 今天小编就为大家分享一篇对Python 数组的切片操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python切片语言详解 切片语法可用于字符串、列表、元组、集合、等序列容器对象 切片语法定义: [start: end: step] 三个值全部可为空, 三个值全部支持负值 start: 起始索引, 默认值为0 end: 结束索引, 默认值为...
  • python切片详解

    千次阅读 2019-04-12 13:40:25
    先构造一个list列表a: a = list(range(1,8)) # [1, 2, 3, 4, 5, 6, 7] 切片的使用可以看做 [start
  • 该参数省略时,表示一直取到数据“端点”,至于是到“起点”还是到“终点”,同样由step参数的正负决定,step为正时直到“终点”,为负时直到“起点” 三、 Python切片操作详细例子 以下示例均以list对象a = [0, 1, ...
  • Python数组切片用法详解

    千次阅读 2018-12-25 17:58:11
    Python使用过程中,经常用到切片,本文总结了一下切片的用法。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,076
精华内容 2,030
关键字:

列表切片python详解

python 订阅