lis = range(100)
# [0, 1, 2, 3, ..., 99] # 取前10个
lis[:10]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 取后10个
lis[-10:]
# [90, 91, 92, 93, 94, 95, 96, 97, 98, 99] # 第11到20个
lis[-10:]
# [90, 91, 92, 93, 94, 95, 96, 97, 98, 99] # 前10个数,每两个取一个(这里要注意第三位是间隔)
lis[:10:2]
# [0, 2, 4, 6, 8]
lis[::10]
# [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] # 倒序
lis[::-1]
# [99, 98, 97, ... , 3, 2, 1, 0 ]

一定不要和matlab的命令弄混,matlab第二位为间隔,而python为第三位。

然后就是反向的切片

In [46]: b = range(10)

In [47]: b
Out[47]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [48]: b[-5:-2]
Out[48]: [5, 6, 7] In [49]: b[-5:-2:-1] # 错误
Out[49]: [] In [50]: b[-5:-2:1] # 与48等价,正向切片,第二位大于第一位,顺序为从第一位到第二位,从左到右
Out[50]: [5, 6, 7] In [51]: b[-2:-5:1] # 错误
Out[51]: [] In [52]: b[-2:-5:-1] # 反向切片,第二位小于第一位,顺序为从第一位到第二位,从右到左
Out[52]: [8, 7, 6] In [53]: b[:-5:-1] # 反向切片,第一位实际为-1,第二位小于第一位,顺序为从第一位到第二位,从右到左
Out[53]: [9, 8, 7, 6]

小结: 不管正向切片或者反向切片,取出的顺序都是从第一位到第二位,方向看第三位符号:正(左到右)负(右到左),间距看第三位的数值,最后第二位均取不到(取到其前面一位)。

彻底弄清python的切片的更多相关文章

  1. python基础——切片

    python基础——切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', ...

  2. python中切片的理解

    Python中什么可以切片 l  Python中符合序列的有序序列都支持切片(slice) l  如:列表,字符,元祖 Python中切片的格式 l  格式:[start : end : step] ...

  3. Python字符串切片操作知识详解

    Python字符串切片操作知识详解 这篇文章主要介绍了Python中字符串切片操作 的相关资料,需要的朋友可以参考下 一:取字符串中第几个字符 print "Hello"[0] 表 ...

  4. Python中切片的应用

    Python中切片的应用 Python中可以通过切片实现对列表或者字符串取指定范围的操作,实际就是通过对列表或者字符串通过索引进行操作. 具体细节点击廖雪峰Python教程,其中的课后小问题在此记录下 ...

  5. Python 的切片为什么不会索引越界?

    切片(slice)是 Python 中一种很有特色的特性,在正式开始之前,我们先来复习一下关于切片的知识吧. 切片主要用于序列对象中,按照索引区间截取出一段索引的内容. 切片的书写形式:[i : i+ ...

  6. Python札记 -- 切片赋值

    一.疑惑    今天在看<Python Cookbook>第四章Python技巧的4.7小节时,发现一段初看起来让人疑惑的代码.该小节的任务是将一个包含列表(行)的列表,转换成一个新的列表 ...

  7. Python学习笔记(五)Python的切片和迭代

    切片 Python提供了切片操作符,可以对list.tuple.字符串进行截取操作. list中的切片应用 语法如下: >>> L = ['Michael', 'Sarah', 'T ...

  8. Python 函数 切片 迭代 列表生成器

    函数 编写     定义一个函数要用def语句    def sum(i,n):   ⚠有冒号 返回多值     实际上是返回一个tuple 定义默认参数    默认参数的作用是简化调用   def ...

  9. python的切片操作

    切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割.注意这与你使用的索引操作符十分相似.记住数是可选的,而冒号是必须的. 切片操作符中的第一个数(冒号之前)表示切片开始的位置,第 ...

随机推荐

  1. AJAX与后台交互传参的两种方式

    工作中的简单总结备忘,防遗失. 第一种:直接传入json数据(后台一个一个入参对接) 1- js请求: var data = {}; data = {"infoId":infoId ...

  2. 通知url必须为直接可访问的url,不能携带参数 异步接收微信支付结果通知的回调地址 不能携带参数。 回调地址后是否可以加自定义参数 同步回调地址 异步回调地址 return_url和notify_url的区别

    [微信支付]微信小程序支付开发者文档 https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7 通知url必须为直接可访问的 ...

  3. docker openvas

    https://hub.docker.com/r/mikesplain/openvas/ Requirements DockerPorts available: 443, 9390, 9391 Usa ...

  4. JavaScript数据结构与算法-链表练习

    链表的实现 一. 单向链表 // Node类 function Node (element) { this.element = element; this.next = null; } // Link ...

  5. Java输入输出重定向代码

    try {   BufferedInputStream in = new BufferedInputStream(new FileInputStream("input.txt")) ...

  6. make menuconfig 时出现 mixed implicit and normal rules: deprecated syntax

    這是 make 的版本問題!不清楚為何要這樣限制? 將此行          config %config: scripts_basic outputmakefile FORCE改成          ...

  7. Spring:笔记整理(1)——HelloWorld

    Spring:笔记整理(1)——HelloWorld 导入JAR包: 核心Jar包 Jar包解释 Spring-core 这个jar 文件包含Spring 框架基本的核心工具类.Spring 其它组件 ...

  8. HAProxy详解

    HAProxy概述与配置 一.HAProxy概述 HAProxy是由 WillyTarreau开发的一款具备高可用性.负载均及基于 TCP和 HTTP的应用代理开源软件,基于HAProxy的负载均衡架 ...

  9. Funq之Lambda表达式入门

    今天接受了一个Tranning关于.net3.5 framework中的new feature. 其中最不明白的还是Lambda表达式.回来后又仔细的思考了一番,总算有点体会在这里写一下.既然是入门, ...

  10. Python学习进程(4)运算符

        本节主要介绍Python的运算符.     (1)Python语言支持的运算符类型: .算术运算符 .比较(关系)运算符 .赋值运算符 .逻辑运算符 .位运算符 .成员运算符 .身份运算符 . ...