zoukankan      html  css  js  c++  java
  • 转载Python切片(小知识点)

    Python3之切片及内置切片函数slice

     转自:https://www.cnblogs.com/minseo/p/11113638.html 博主:minseo

         切片

        取一个list或tuple的部分元素是非常常见的操作。比如,一个list

    1
    L=[0,1,2,3,4,5,6,7,8,9]

      取前3个元素,应该怎么做

           笨方法,一个个列出来

    1
    2
    >>> [L[0],L[1],L[2]]
    [012]

      假如需要列出N个但是N很大 

      循环方法

    1
    2
    3
    4
    5
    6
    7
    >>> r=[]
    >>> n=3
    >>> for in range(n):
    ...   r.append(L[i])
    ...
    >>> r
    [012]

      对于经常去指定索引范围的操作,用循环十分繁琐,因此pythone提供了切片操作符能大大简化操作

    1
    2
    >>> L[0:3]
    [012]

      L[0:3]表示,从索引0开始,直到索引3,但是不包含索引3,及索引0,1,2 一共3个元素

      如果第一个索引为0可以省略

    1
    2
    >>> L[:3]
    [012]

      也可以从索引1开始,取出2个元素来

    1
    2
    >>> L[1:3]
    [12]

      类似也可以倒数切片,-1代表倒数第1个索引

    1
    2
    3
    4
    >>> L[-2:]
    [89]
    >>> L[-2:-1]
    [8]

      默认取的间隔是1也可以定义,隔几个去一个

      从索引0取到索引9没隔两个取一个

    1
    2
    >>> L[0:10:2]
    [02468]

      什么都不写,只写[:]就可以原样复制一个list

    1
    2
    >>> L[:]
    [0123456789]

      tuple也是一个list,唯一区别是tuple不可变.tuple切片也是一个tuple

    1
    2
    >>> (0,1,2,3,4,5)[:3]
    (012)

      字符串'xxx'也是可以看成是一种list,也可以切片返回的是一个字符

    1
    2
    >>> 'abcde'[:3]
    'abc'

      

      切片函数slice

      语法

    1
    2
    class slice(stop)
    class slice(start, stop[, step])

      参数说明

    1
    2
    3
    start--起始位置  默认为None
    stop--结束位置   自定义
    step--间距         默认为None间距为1

      

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> myslice=slice(3)
    >>> myslice
    slice(None3None)
    >>> L[myslice]
    [012]
    >>> print(myslice.start)
    None
    >>> print(myslice.step)
    None
    >>> print(myslice.stop)
    3

      以上

    1
    2
    3
    myslice=(3)
    等价于
    myslice=slice(0,3,1)

      自定义间隔step

    1
    2
    3
    4
    5
    6
    7
    #切片范围为0-10 间距为2
    >>> myslice=slice(0,10,2)
    #查看参数
    >>> myslice
    slice(0102)
    >>> L[myslice]
    [02468]
    悟已往之不谏,知来者之可追
  • 相关阅读:
    java多线程api
    java多线程
    java代理
    java程序员常用的linux命令
    java泛型
    java反射
    日期和时间
    java集合
    Nodejs mac版安装
    for in、each; for 、forEach、map
  • 原文地址:https://www.cnblogs.com/ljh-study/p/14421579.html
Copyright © 2011-2022 走看看