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

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

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

比如:

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

参考资料:

python 切片函数,python切片详解相关推荐

  1. Python return函数返回值详解

    Python return函数返回值详解 到目前为止,我们创建的函数都只是对传入的数据进行了处理,处理完了就结束.但实际上,在某些场景中,我们还需函数将处理的结果反馈回来,就好像主管向下级员工下达命令 ...

  2. 站长在线Python精讲:在Python中函数的调用详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中函数的调用详解>.本文的主要内容有:调用函数的基本语法和调用自定义函数的实例讲解. 目录 1.调用函数的基本 ...

  3. python def函数报错详解_Python函数详解

    一.Python中函数的概念 1.python中函数概念 Python中函数是逻辑结构化和过程化的一种编程方法. 2.python中函数定义方法解释 def name(a): "The fu ...

  4. python def函数报错详解_python自定义函数def的应用详解

    这篇文章主要介绍了python自定义函数def的应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 这里是三岁,来和大家唠唠 ...

  5. python def函数报错详解_python所有内置函数的定义详解

    >>> def hello_world(): ...     print('Hello,world!')   # 注意函数体要有缩进 ... >>> hello_w ...

  6. python def函数报错详解_JSer 快速入门 Python 之函数详解

    前一篇文章,用一天的时间,通过与 JavaScript 做对比的方式,快速领略了 Python 全貌. 梳理了那么多,若忽略细节差异,两门语言只有两个重要差异: 1.书写风格上大相同 2.功能覆盖上, ...

  7. python def函数报错详解_【python】详解python函数定义 def()与参数args、可变参数*args、关键参数**args使用实例...

    Python内置了很多函数,可以直接调用.Python内置的函数可以通过官方文档查看.也可以通过help()查看帮助信息.函数名是指向函数对象的引用,把函数名赋给变量,相当于给函数起了别名. 1. 定 ...

  8. 零基础学Python:函数的参数详解

    必备参数 关键字参数 默认参数 不定长参数 1 必需的参数: 必须参数须以正确的顺序传入函数,调用的数量必须和声明时的一样 def f(name,age):print('I am %s,I am %d ...

  9. python get函数用法_详解python中get函数的用法(附代码)

    描述 Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法:dict.get(key, default=None) 参数 key – 字典中要查找 ...

  10. Python format函数的用法详解

    1.通过位置来填充字符串 print('hello {0} i am {1}'.format('world','python')) # 输入结果:hello world i am python pri ...

最新文章

  1. ERROR: Failed to resolve: com.android.databinding:library:3.4.2
  2. 英特尔5G基带发布时间提前半年以上,但2019款iPhone支持5G仍有点悬
  3. C#实现Web应用程序定时启动任务
  4. python 为什么用%格式化_Python中应该使用%还是format来格式化字符串?
  5. redis internal【转】
  6. 解决 Maven 报错 Non-resolvable parent POM ... was cached in the local repository, resolution will not be
  7. 检查集群状态命令_轻松管理Kubernetes集群的7个工具
  8. 你以为用了BigDecimal后,计算结果就一定精确了?
  9. JavaScript 中数组方法 reduce 的妙用之处
  10. 自动挂机区块AI机器人源码开源支持二次开发
  11. mysql 主从 仅备份从库_MySQL主从复制 - 从数据库备份数据库
  12. linux去掉日志中的skipping,Linux日志文件总管 logrotate
  13. Callback、Listener、Worker、Manager的命名说明
  14. 企业网ARP欺骗网关攻击与伪DHCP分析与处理
  15. [ZT]如何建立通过防火墙的 NetMeeting 连接
  16. 详解使用可道云Kodbox快速在云服务器上搭建云盘
  17. Win10正式版激活方法有哪些?如何激活Win10?
  18. 谷歌VAD静音检测py-webrtcvad使用详解
  19. 现货白银价格走势分析
  20. 致家长--为什么选择Scratch

热门文章

  1. python 条形图 stack_python使用Plotly绘图工具绘制水平条形图
  2. 网页中竖的目录怎么改成横的_一点基础也没有,想快速练漂亮硬笔字,先练什么?怎么练进步明显?...
  3. 擦窗机器人不用时怎么收纳_解放双手,再也不用手动擦窗啦
  4. 什么叫做展望_在迷茫的时代,选择相信:关于2021经济的一些展望。
  5. pb实现简单计算器的思想_【python实用编程之简单矩阵计算器实现】GUI编程
  6. android fragment学习6--FragmentTabHost底部布局
  7. Python-视频爬取示例对小白友好
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的小说管理系统
  9. 作业帮:字符串反转(头部插入)
  10. SpringBoot中注册Servlet三大组件