python的切片(slice)技术是相当纯熟好用的,sequence(序列)对象都可以直接切片,list,字符串,tuple,bytes...

切片的基本操作,就是讲sequence对象的一部分切下来:

>>> a

[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> s

'123456789'

>>> t

(1, 2, 3, 4, 5, 6, 7, 8, 9)

>>> a[2:7]

[3, 4, 5, 6, 7]

>>> s[2:7]

'34567'

>>> t[2:7]

(3, 4, 5, 6, 7)

从index=2开始,到index=7,但是不取index=7这个位置!7-2=切下来的长度!

我尝试了一下,切片操作还能反过来,用负数index:

>>> a[-2:-7]

[]

>>> a[-2:7]

[]

>>> a[-2:]

[8, 9]

>>> a[-2:9]

[8, 9]

>>> b = [1,2,3,4,5,6,7,8]

>>> b

[1, 2, 3, 4, 5, 6, 7, 8]

>>> b[-7:-2]

[2, 3, 4, 5, 6]

>>> b[-7:-2:2]

[2, 4, 6]

间隔切片开始了,下面是每两个元素取一个:

>>> a[::2]

[1, 3, 5, 7, 9]

>>> s[::2]

'13579'

>>> t[::2]

(1, 3, 5, 7, 9)

>>>

>>> a[3::2]

[4, 6, 8]

>>> s[3::2]

'468'

>>> t[3::2]

(4, 6, 8)

>>>

>>> a[3:7:2]

[4, 6]

>>> s[3:7:2]

'46'

>>> t[3:7:2]

(4, 6)

最后那个数字2,表示步长,即每走2步干一票。当然可以自己修改这个数字了。用步长可以从右到做,即反过来走。

>>> a[::-1]

[9, 8, 7, 6, 5, 4, 3, 2, 1]

>>> s[::-1]

'987654321'

>>> t[::-1]

(9, 8, 7, 6, 5, 4, 3, 2, 1)

>>>

>>> a[::-2]

[9, 7, 5, 3, 1]

>>> s[::-2]

'97531'

>>> t[::-2]

(9, 7, 5, 3, 1)

>>>

>>> a[3::-2]

[4, 2]

>>> s[3::-2]

'42'

>>> t[3::-2]

(4, 2)

现在可以反过来,从右到左切片了:

>>> a[100:2:-1]

[9, 8, 7, 6, 5, 4]

>>> s[100:2:-1]

'987654'

>>> t[100:2:-1]

(9, 8, 7, 6, 5, 4)

注意index=100,是合法的,只要index比最大的大,都是取最后的那个元素!

关键是切片操作的步长,这个参数的要义一定要get到。

-- EOF --

python切片长度_python的间隔切片技巧相关推荐

  1. python切片迭代_Python高级特性 切片 迭代解析

    切片:方便截取list.tuple.字符串部分索引的内容 正序切片 语法:dlist = doList[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素 ...

  2. python列表切片赋值_Python中对切片赋值原理分析

    有这么个问题::t = [1, 2, 3] t[1:1] = [7] print t  # 输出 [1, 7, 2, 3] 谁会对列表这么进行赋值呢?但是对于这个输出结果的原因确实值得去再了解下,今天 ...

  3. python字符串数组切片性能_python – 为数组切片赋值很慢

    我正在尝试通过在Cython中实现它来优化 Python算法.我的问题是关于以下代码中存在的某个性能瓶颈: @cython.boundscheck(False) # turn off bounds-c ...

  4. python时间间隔循环_python循环间隔

    广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! 序言如图1.1中关于如何用python去计算两个时间(年月日)相隔多少天,简 ...

  5. python 元组长度_Python 简明教程 ---11,Python 元组

    微信公众号:码农充电站pro 软件工程的目标是控制复杂度,而不是增加复杂性. -- Dr. Pamela Zave 目录 我们在上一节介绍了Python 列表list 数据结构,本节来介绍一下元组tu ...

  6. python dry原则_python使用建议与技巧分享(一)

    这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获. 1 如何创建指定长度且有特定值的list 不推荐方式 list1 = [0, 0, 0, 0, 0, 0, 0 ...

  7. python csv性能_Python 使用和高性能技巧总结

    1. 易混淆操作 本节对一些 Python 易混淆的操作进行对比. 1.1 有放回随机采样和无放回随机采样 import random random.choices(seq, k=1) # 长度为k的 ...

  8. python一些常用方法_python常用的一些技巧

    python常用的一些技巧 1.三目操作符 2.鸭子类型(duck typing) 首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型.以下是维基百科中对鸭子类型得论 ...

  9. python linux 优化_Python 代码性能优化技巧

    Python 性能优化除了改进算法,选用合适的数据结构之外,还有几种关键的技术,比如将关键 python 代码部分重写成 C 扩展模块,或者选用在性能上更为优化的解释器等,这些在本文中统称为优化工具. ...

最新文章

  1. jQuery 在Table中选择input之类的东西注意事项
  2. Linux find
  3. 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )
  4. 南开大学计算机机房,南京大学高性能计算中心揭秘(多图)
  5. 常量元素记忆口诀_人体中的常量元素与微量元素
  6. CakePHP之Model
  7. 用ab进行POST,GET压力测试,且定义header及json的内容
  8. 自定义按键_DNF手游:策划宣布新增自定义按键布局,期待手游新版本的到来
  9. qt 安装mysql_qt 安装mysql数据库
  10. linux java url 异常_java异常处理总结
  11. 前端实操案例丨如何实现JS向Vue传值
  12. 借助Sigar API获取内存信息
  13. 对话张冬洪 | 全面解读NoSQL数据库Redis的核心技术与应用实践
  14. UVCCamera AndroidUSBCamera示例运行错误的解决办法
  15. catalog英文翻译_Catalog.是什么意思
  16. python3基础(廖雪峰)
  17. element-plus 疯狂报警告 ElementPlusError: [Util] binding value must be a string or number.
  18. 清华系激光雷达公司,成了量产元年最大的黑马
  19. elasticsearch 条件去重_Elasticsearch7.* + SpringBoot2.*根据中文和拼音分页去重搜索-Go语言中文社区...
  20. 判断2000-2500年中的每一年是否为闰年,将结果输出。

热门文章

  1. 阿里云公布IP地理位置库抄袭调查结果;华为云电脑8月16日将停止服务和运营;Chrome 92发布|极客头条...
  2. 小众却顽强的编程语言 Erlang ,你了解多少?
  3. 滴滴自动驾驶首轮融资超5亿美元 加大研发投入 助力“新基建”
  4. 如何使用 SQL Server FILESTREAM 存储非结构化数据?
  5. 从 Nginx 到 Pandownload,程序员如何避免面向监狱编程?
  6. 看完这篇 HTTP,跟面试官扯皮就没问题了
  7. IntelliJ IDEA 2019.3 正式发布,给我们带来哪些新特性?| CSDN 博文精选
  8. 阿里开源物联网操作系统 AliOS Things 3.0 发布,集成平头哥 AI 芯片架构!
  9. 千亿智慧照明市场背后,BLEMESH免开发方案成主流
  10. 千年老二的 Python 值得学吗?