美文网首页javaweb
python切片详解

python切片详解

作者: 编程技术 | 来源:发表于2016-03-16 13:12 被阅读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 ) )

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

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

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

相关文章

  • Python切片语法详解 看完你就是切片大神

    Python切片语法详解 看完你就是切片大神 看完本篇文章你就是切片大神 切片语法可用于字符串、列表、元组、集合、...

  • python切片详解

    先从原理上分析切片运算:list的切片,内部是调用__getitem__,__setitem__,__delite...

  • Python3切片详解

    本文通过一个简单的例子讲解切片的应用: 先构造一个list列表a: 切片的使用可以看做 [start:end:in...

  • 【框架语言】Python切片详解

    在利用python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操...

  • Python 切片语法详解!

    Python的切片是特别常用的功能,主要用于对列表的元素取值。使用切片也会让你的代码显得特别Pythonic。 切...

  • Python3切片详解 !

    先构造一个list列表a: a = list(range(1,8)) # [1, 2, 3, 4, 5, 6,...

  • python 10天快速教程 Day4

    本节重点 递归函数 匿名函数 python内置函数 切片 列表生成式 内存地址 可变类型与不可变类型详解 公共运算...

  • 2018-04-11

    Python字符串切片操作知识详解(转载自脚本之家): 一:取字符串中第几个字符 print "Hello"[0]...

  • Python的高级特性

    切片 list切片 tuple切片 str切片 迭代 在Python中迭代是通过for ... in ...来实现...

  • Python使用列表的一部分(55)

    处理列表的部分元素,Python称之为切片。 python大大的图 我的图 1.切片 切片其实跟range( )很...

网友评论

    本文标题:python切片详解

    本文链接:https://www.haomeiwen.com/subject/xnvqlttx.html