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

    先从原理上分析切片运算:

    list的切片,内部是调用__getitem__,__setitem__,__delitem__和slice函数。而slice函数又是和range()函数相关的。

    给切片传递的键是一个特殊的slice对象。该对象拥有可描述所请求切片方位的属性,例如:

    1
    2
    3
    4
    a = [ 123456 ]
    x = a [ 1 5 ] #  x = a.__getitem__( slice ( 15, None ) )
    a [ 1 3 ] = [101112 ]#  a.__setitem__( slice ( 13, None ), [ 101112 ] )
    del a [ 1 4 ]#  a.__delitem__( slice ( 14, None ) )

    Python 的切片功能实际上比很多程序员认为的更强大。

    1
    = m [ 0 100 10 ]  #  带步进的切片(步进值=10)

    注意:步进值为step

    当step > 0 时

    切片从 start(含start)处开始,到end(不含end)处结束,**从左往右**,每隔(step-1)(索引之间的差仍为step,但相隔的元素是step-1个)个元素进行一次截取。

    这时,start 指向的位置应该在end指向的位置的左边,否则返回值为空

    当step < 0 时

    切片从 start(含start)处开始,到end(不含end)处结束,**从右往左**,每隔(step-1)(索引之间的差仍为step,但相隔的元素是step-1个)个元素进行一次截取。

    这时,start 指向的位置应该在end指向的位置的右边,否则返回值为空

    有一个经典应用是:翻转字符串

    比如:

    1
    2
    >>> str='pythontab.com'
    >>> str[::-1]

    结果为:

    'moc.batnohtyp'

    切片边界问题

    实例:

    1
    2
    3
    4
    5
    6
    s=[1,2,3,4]       # S 上界为 0 下界为 4
    s[-100:100]       #返回 [1,2,3,4] -100超出了上界,100超出了下界:等价于 s[0:4]
    s[-100:-200]      #返回 [] -100,-200均超出了上界,自动取上界:等价于s[0:0]
    s[100:200]        #返回 [] 100,200均超出了下界,自动取下界值:等价于s[4:4]
    s[:100]           #返回 [1,2,3,4] 开始值省略表示从第0个开始
    s[0:]             #返回 [1,2,3,4] 结束值为空表示到最后一个结束

    注意:我使用的python版本为python2.7,python的切片存在版本兼容问题。在python3中有更加高级的功能和用法,在使用时一定要注意自己的python版本。

  • 相关阅读:
    自动对一个文件夹下的N个word文件批量执行一个宏
    PHP正则匹配联系方式手机号、QQ、微信、邮箱、固定电话
    私信基本功能数据库设计
    ArcGIS三分式标注、四分式标注和同时上下标实现
    Word2019文档中将页面边框更改为文本边框的方法
    Arcgis彻底删除和卸载
    ArcMap中各种基本概念的介绍
    ArcGIS Python工具箱.pyt裁剪工具
    C# Object对象的ToString方法在转换日期时丢失毫秒
    2020年糖尿病领域中国学者学术影响力排名
  • 原文地址:https://www.cnblogs.com/paranoia/p/6182386.html
Copyright © 2011-2022 走看看