切片

切片的语法表达式为:[start_index : end_index : step],其中:

start_index表示起始索引

end_index表示结束索引

step表示步长,步长不能为0,且默认值为1

切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引(也就是结束索引减1)的所有元素。

python3支持切片操作的数据类型有list、tuple、string、unicode、range

切片返回的结果类型与原对象类型一致

切片不会改变原对象,而是重新生成了一个新的对象

下面列表为列:

图列一

一个简单的例子:

alist=['A','B','C','D','E','F']

①alist[0:4:1]

②alist[0:4]

结果:['A', 'B', 'C', 'D'] ①和②结果一样,因为步长有默认值为1

alist[0:4:2]

结果:['A', 'C']

省略start_index,保留end_index,这样会从第一个元素开始,切到end_index - 1的元素为止

alist[:4]

['A', 'B', 'C', 'D']

保留start_index,但省略end_index,这样会从起始索引开始,切到最后一个元素为止:

alist[2:]

['C', 'D', 'E', 'F']

省略start_index、end_index和step,这样就表示就表示切片整个序列,也就是复制出了一个新的序列:

alist[:]

['A', 'B', 'C', 'D', 'E', 'F']

省略start_index、end_index,但保留step,表示对整个序列,按照步长整除的规则取值:

alist[::2]

['A', 'C', 'E']

此时,如果我们将步长设为-1,那么就可以很方便的得到一个反序的序列了:

alist[::-1]

['F', 'E', 'D', 'C', 'B', 'A']

下面这四种表达式是等价的:

alist[0:4]

['A', 'B', 'C', 'D']

alist[0:-2]

['A', 'B', 'C', 'D']

alist[-6:4]

['A', 'B', 'C', 'D']

alist[-6:-2]

['A', 'B', 'C', 'D']

观察图列一就可以得出,区间一致。

切片时,一定要保证start_index到end_index的方向与步长step的方向同向,否则会切出空的序列:

alist[0:4:-1]

[]

alist[3:0:2]

[]

利用切片功能,编写一个函数trim(str),类似Python中的strip()功能——去除字符串首尾的空格:

>>> def trim(str):

... while str[:1]==' ':

... str = str[1:]

... while str[-1:] == ' ':

... str = str[:-2]

... return str

...

>>> trim(' abc hh welcome! ')

'abc hh welcome!'

python 利器_python利器之切片相关推荐

  1. python利器app可以运行python嘛_python利器app_python利器安卓版v3.0

    python利器是一款相当好用代码学习软件,python零基础也能快速入门.丰富的资源内容和海量的案例帮你快速掌握这门编辑语言,喜欢的朋友赶紧收藏吧. python利器介绍: python利器是一款学 ...

  2. Python 数据可视化利器 plus(plotly )

    概述 前言 推荐 plotly bokeh pyecharts 后记 前言 更新:上一篇文章<python 数据可视化利器>中,我写了 bokeh.pyecharts 的用法,但是有一个挺 ...

  3. python利器-Python 数据可视化利器

    原标题:Python 数据可视化利器 (给Python开发者加星标,提升Python技能) 作者:zone7(本文来自作者投稿,简介见末尾) 概述 前言 推荐 plotly bokeh pyechar ...

  4. Zhon库:Python文本处理利器!详细攻略带你玩转!

    Zhon库:Python文本处理利器!详细攻略带你玩转! 如果你经常使用Python进行文本处理,那么Zhon库绝对是你不能错过的一个工具库.Zhong库提供了一系列有用的Unicode字符集合,包括 ...

  5. Python爬虫辅助利器PyQuery模块的安装使用攻略

    这篇文章主要介绍了Python爬虫辅助利器PyQuery模块的安装使用攻略,PyQuery可以方便地用来解析HTML内容,使其成为众多爬虫程序开发者的大爱,需要的朋友可以参考下 Windows下的安装 ...

  6. python列表切片得到的是列表还是字符串_python中列表的切片问题 python arry怎么取列切片...

    python 列表切片赋值 对列表切片进行赋值,解释器处理时是直接将序列中的内容赋值过去的 ,还切片赋值,得到的与原变量无关,是两个不同的对象:直接赋值,引用的是同一个对象. 请看下例 切片赋值. a ...

  7. Python numpy 多维数组切片

    import numpy as npnp.random.seed(1234) A = np.random.randint(0, 6,(5,3)) #生成10行3列数值在[0,6)的随机数组 print ...

  8. python画代码-Python教程_Python画Mandelbrot集 代码

    Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...

  9. 【Python】掌握Python中的索引和切片

    作者 | Giorgos Myrianthous 编译 | VK 来源 | Towards Data Science 在Python中,像字符串或列表这样的有序序列的元素可以通过它们的索引单独访问.这 ...

最新文章

  1. 最小生成树学习-Kruskal算法
  2. 学习笔记(十五)——MySQL(查询)
  3. html层次选择器例题,JQuery 层次选择器的例子
  4. 如何在 Outlook 中使用外出时的助理程序
  5. CentOS7 ISCSI服务器搭建
  6. fiddler设置中文版本_Python3.x+Fiddler 抓取 APP 数据
  7. LeetCode-Single Number
  8. 线上阿里云mysql慢_MySQL · 案例分析 · RDS MySQL线上实例insert慢常见原因分析-阿里云开发者社区...
  9. jquery双击修改_jQuery双击
  10. eclipse 配置多个tomcat
  11. ERROR: libass not found using pkg-config
  12. python 3.6 安装 win32 win32com模块
  13. PHP 100以内质数表
  14. 光缆接头盒故障原因分析
  15. “当高启强遇到陈书婷”与TCP协议
  16. Java——重写hashCode()和euqals()方法
  17. 记一次腾讯TBS浏览服务集成实践
  18. 1.产品/数据产品设计
  19. [架构之路-5]:架构师 - 中国计算机技术职业资格(软考)考试是如何定义系统架构师?
  20. 3.基本的DOS命令

热门文章

  1. 一文详解 Java 的几把 JVM 级锁
  2. Android 开发者成神之路!
  3. 2020 大会员惊喜上线!大特权限时领取!
  4. 保温杯都这么给力了,你的 Bug 就不能少点?
  5. 一文揭秘知乎是如何搞 AI 的 | 技术头条
  6. Google 亚马逊又双叒叕打架了!用户:我只想安静地用产品
  7. java this() super(),Java super()和this()的区别用法及代码示例
  8. 限速牌的单位是什么_成熟的造车新势力应该是什么样的?
  9. 巩固知识体系!淘宝秒杀脚本java
  10. Java开发中遇到最难的问题!java定义list集合