• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python切片详解

python 搞java代码 3年前 (2022-05-21) 32次浏览 已收录 0个评论

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

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

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

a = [ 1, 2, 3, 4, 5, 6 ]
x = a [ 1 : 5 ] #  x = a.__getitem__( slice ( 1, 5, None ) ) 
a [ 1 : 3 ] = [10, 11, 12 ]#  a.__setitem__( slice ( 1, 3, None ), [ 10, 11, 12 ] )
del a [ 1 : 4 ]#  a.__delitem__( slice ( 1, 4, None ) )

www#gaodaima.com来源gao!daima.com搞$代!码网搞代码

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

a = 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指向的位置的右边,否则返回值为空

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

比如:

>>> str="pythontab.com"
>>> str[::-1]

结果为:

'moc.batnohtyp'

切片边界问题

实例:

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版本。

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python切片详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址