Sequence[start:end:step] python 的序列切片中,第一个:隔离了 起始索引 和 结束索引,第二个:隔离了 结束索引和 步长

  • step为正,则从左到右切片,如果 start > end,则为空
  • step为负,则从右到左切片,如果 start < end,则为空
  • start 和 end 填空,前者表示最开始,后者表示最后一个, 同时为空的时候,表示取所有。至于方向,取决于 step

可以总结一句规律,step 为正表示从左到右切片,反之为右到左。然后根据index 依次切片

>>> a=list(i for i in range(1,11))
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> a[8:3:-1]
[9, 8, 7, 6, 5] # 右-》左切片,step 为1,a[8]=9, a[7]=8, ... a[4]=5, 8-3=5个
>>>
>>> a[10:0:-2]
[10, 8, 6, 4, 2] # 右-》左切片, 切片的时候,不存在 index 越界情况,a[10]不存在,a[9]=10, a[7]=8, a[5]=6...
>>> #上面的10可以超出索引范围使用,下面的使用10为什么引用是分片引用是空???
>>> a[0:10:-2] # start < end step 为负, 方向为右-》左,第一个是 a[0], a[0]的左边就再也没有值了。为空
[]
>>>
>>> a[::-2] # a[:]表示去所有,step 为负就放方向啦
[10, 8, 6, 4, 2]
>>> # 下面怎么理解??
>>> a[5::-2] # 右-》左,等价 a[5:0:-2] a[5]=6, a[3]=4, a[1]=2
[6, 4, 2]
>>> # 下面怎么理解??
>>> a[:5:-2] # 右-》左, 等价与 a[9:5:-2] a[9]=10, a[7]=8
[10, 8]
>>>

python步长为负时的情况的更多相关文章

  1. python在读取文件时出现 'gbk' codec can't decode byte 0x89 in position 68: illegal multibyte sequence

    python在读取文件时出现“UnicodeDecodeError:'gbk' codec can't decode byte 0x89 in position 68: illegal multiby ...

  2. Python决定一个变量时局部的,还是全局的,是在编译期

    Python中的变量名是在编译时就解析好的,换句话说,在编译时(也就是在交互控制台输入代码是或者import文件时),Python就已经决定一个变量应该是局部变量,还是全局变量.来看下面的例子: &g ...

  3. python读取ini文件时,特殊字符的读取

    前言: 使用python在读取配置文件时,由于配置文件中存在特殊字符,读取时出现了以下错误: configparser.InterpolationSyntaxError: '%' must be fo ...

  4. python安装whl包时出现的问题解决:is not a supported wheel on this platform

    @ 目录 一.问题 二.查找问题 三.问题解决 一.问题 1.下载一个twisted包 安装Twisted,进入https://www.lfd.uci.edu/~gohlke/pythonlibs 下 ...

  5. 用python解决打标签时将xml文件的标签名打错

    用python解决打标签时将xml文件的标签名打错 问题描述:再进行达标签时将magnetic_tile的标签名错误的打成了magnetic_title,又不想一张一张的修改 出现问题的xml文件 & ...

  6. Python操作Mysql数据库时SQL语句的格式问题

    一.概述 近日使用Python对Mysql数据库进行操作,遇到SQL语句死活出问题的情况.由于最初没有将异常打印出来,一直不知道原因.随后,将异常打印出来之后,通过异常信息,对代码进行修改.最终,成功 ...

  7. 解决win10环境下python Selenuim调用Chrome时提示data 及Chrome正在受自动软件控制的方法

    用python自动访问谷歌浏览器时会出现data界面,很是烦人.在网上搜索,有说是因为webdriver和google版本不匹配导致的,就下过各种版本,结果都一样. 后来明白了,出现data的原因只是 ...

  8. python写入txt文件时的覆盖和追加

    python写入文件时的覆盖和追加 在使用Python进行txt文件的读写时,当打开文件后,首先用read()对文件的内容读取,然后再用write()写入,这时发现虽然是用"r+" ...

  9. python的__slots__节约内存的魔法;检查python每一行代码内存占用情况的工具

    在Python中,每个类都有实例属性.默认情况下Python用一个字典来保存一个对象的实例属性.这非常有用,因为它允许我们在运行时去设置任意的新属性. 然而,对于有着已知属性的小类来说,它可能是个瓶颈 ...

随机推荐

  1. noip 模拟赛 After 17(递推+特殊的技巧)

    来源:Violet_II T1 好神的一题,我竟然没做出来QAQ 首先我们发现,答案是sigma(x[i]*x[j], i>j)+sigma(y[i]*y[j], i>j).显然只需要讨论 ...

  2. Github基本操作的学习与温习

    GitHub是最先进的分布式版本控制工具,下面是我学习中总结的操作流程,仅供参考 ----------------------------------------------------------- ...

  3. 0、手把手教React Native实战之开山篇

    ##作者简介 东方耀    Android开发   RN技术   facebook   github     android ios  原生开发   react reactjs nodejs 前端   ...

  4. java必备——经典的Hibernate

    在编程开发中,我们有非常多框架,他们有些非常方便,也非常有用,今天我们一起来认识一个java经典的框架Hibernate,Hibernate英文名称为"冬眠".这是个非常有意思的技 ...

  5. ef AddDays报错

    ef func写法,在语句中不能使用adddays方法 )); 这样写就是不行 可以改为: ); 下面是我的一个案例,虽然到了最后都没有实现功能! public List<ContractBud ...

  6. iOS Search bar 输入空字符串也可以搜索

    Search bar delegate - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar { UITextField *sea ...

  7. @Override must override a superclass method 有关问题解决

    1.Java开发环境时 如果在使用Eclipse开发Java项目时,在使用 @Override 出现以下错误: The method *** of type *** must override a s ...

  8. MyBatis 从入门到熟悉.md

    目录 MyBatis从入门到熟悉 MyBatis Generator MyBatis 测试 一对一 一对多 多对多 总结 参考 MyBatis从入门到熟悉 以下代码获取地址: https://gith ...

  9. 并发编程7 管道&事件&信号量&进程池(同步和异步方法)

    1,管道 2.事件 3.信号量 4.进程池的介绍&&进程池的map方法&&进程池和多进程的对比 5.进程池的同步方法和异步方法 6.重新解释同步方法和异步方法 7.回调 ...

  10. Learning PHP Design Patterns

    Learning PHP Design Patterns CHAPTER 1 Algorithms handle speed of operations, and design patterns ha ...