一文彻底看懂Python切片
1.什么是切片
切片是Python中一种用于操作序列类型(如列表、字符串和元组)的方法。它通过指定起始索引和结束索引来截取出序列的一部分,形成一个新的序列。切片是访问特定范围内的元素,就是一个Area。
说个笑话:切片不是切片,而是切片,但是又是切片。大家理解下呢(末尾放出作者自己的理解)。

思考:为什么要有切片?我拿开始和结尾的索引来输出特定的元素不行吗?
答:可以,不觉得麻烦吗?
2.基本语法

如果想从某元素一直切片到最后结束,结束索引可以大于数组长度,如下:

前面提到了,最后一个元素的索引是-1,所以从末尾开始切片如下:

但是这样也无法包括到最后一个元素,怎么办呢?是不是使用下面就可以了呢?

事实上,执行切片操作时,如果第一个索引指定的元素位于第二个索引指定的元素后面(在这里,倒数第3个元素位于第1个元素后面),结果就为空序列。因为0是第一个元素的索引,-3是后面元素的索引,相当于反了。
那怎么才能取到最后一个元素呢?省略末尾开始的元素索引即可。

同样,如果切片始于序列开头,可省略第一个索引。

想必你也猜到了,如果只有:,就意味着“复制”。

3.更大的步长

这个时候看着就有意思了,步长为负的时候,为什么开始索引比结束索引大呢?可以这么理解:

步长为负的之后,index还是从右向左的,截取的计算方法是从右向左计算的,这个时候头就
变成了右边的。
技巧:前面两个参数先看区间,再看后面的步长,然后从右向左。



最后给出作者对于“切片不是切片,而是切片,但是又是切片”的理解。
切片不是切片:切片不是将序列切断。
而是切片:是切出对一个区域的操作,序列切片之后还是序列。
但是又是切片:切片是按照指定的规则“切”原来的序列之后重新缝合成新的序列。
一文彻底看懂Python切片的更多相关文章
- 闯缸鱼:看懂python如何实现整数加和,再决定是否自学编程
玩鱼缸的新手都知道有一种鱼叫"闯缸鱼",皮实好养,帮助新手判断鱼缸环境是否准备好.这篇笔记,最初用来解答一个编程新手的疑问,后来我发现,整理一下也可当做有兴趣自学python 编程 ...
- 彻底搞懂Python切片操作
在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器.理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任 ...
- Python|一文简单看懂 深度&广度 优先算法
一.前言 以后尽量每天更新一篇,也是自己的一个学习打卡!加油!今天给大家分享的是,Python里深度/广度优先算法介绍及实现. 二.深度.广度优先算法简介 1. 深度优先搜索(DepthFirstSe ...
- 一文看懂python主要应用领域或应用场景
Python简介 Python(英国发音:/ˈpaɪθən/美国发音:/ˈpaɪθɑːn/),是一种面向对象的解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明,第一个公开 ...
- 一文看懂Python的面向对象编程
之前在网络上看了很多关于面向对象的编程详解,还是不够过瘾,所以决定自己动手写一篇. 面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计. 类(Class) ...
- 一文看懂 Python 中的函数参数
函数定义中的参数也就是形式参数,规定了在调用函数时如何传递实际参数以及这些参数有无默认值. 实参传递方式 def f(a): print(a) 实参传递方式有两种,位置和关键字.对于上面定义的函数 f ...
- 一文犀利看懂中美贸易战 z
如今的中国面对着前所未有的经济全球化的大环境.面对着如何成为创新性国家的重任. 钛媒体注:美国东部时间 7 月 6 日凌晨0:01 分,美国正式开始对 340 亿美元的中国产品加征 25% 的关税,这 ...
- 3分钟看懂Python后端必须知道的Django的信号机制!
概念 django自带一套信号机制来帮助我们在框架的不同位置之间传递信息.也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者( ...
- 一图看懂python对excel的读写
- 一文看懂Stacking!(含Python代码)
一文看懂Stacking!(含Python代码) https://mp.weixin.qq.com/s/faQNTGgBZdZyyZscdhjwUQ
随机推荐
- 快速了解DevSecOps:构建安全软件开发的基石!
关键词 DevSecOps - 在不影响敏捷性的前提下,将安全充分融入到SDLC的所有环节中 SDLC-软件交付生命周期 SCA-软件组成分析-用于识别和检测软件中使用的开源/第三方组件的已知安全漏洞 ...
- 三 APPIUM Android自动化 测试初体验(转)
1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependencies></dependencies>下添加appium相关依赖: <depende ...
- 如何将 dubbo filter 拦截器原理运用到日志拦截器中?
业务背景 我们希望可以在使用日志拦截器时,定义属于自己的拦截器方法. 实现的方式有很多种,我们分别来看一下. 拓展阅读 java 注解结合 spring aop 实现自动输出日志 java 注解结合 ...
- 解决使用sqlalchemy时MySQL密码含有特殊字符问题
前言 当MySQL密码中含有特殊字符时,使用sqlalchemy大概率连不上,这时候就需要from urllib.parse import quote_plus as urlquote. 示例代码 f ...
- Android OAID 获取 基于MSA oaid_sdk_1.0.25.zip
目录 简介 SDK下载 支持版本 开始使用 可能遇到的问题 替代方案 APK下载 写在最后 简介 本文链接:https://www.cnblogs.com/dks-/p/14357041.html 根 ...
- 最常用的Linux命令
1. tar 创建一个新的tar文件 $ tar cvf archive_name.tar dirname/ 解压tar文件 $ tar xvf archive_name.tar 查看tar文件 $ ...
- 2、Spring之IOC概述
2.1.IOC思想 2.1.1.传统方式获取资源 组件主动地从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式: 提高了学习成本,同时也降低了开发的效率. 2. ...
- JSTL fn函数使用
首先,我们要在页面的最上方引用: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/function ...
- 开源.NetCore通用工具库Xmtool使用连载 - 图形验证码篇
[Github源码] <上一篇> 介绍了Xmtool工具库中的Web操作类库,今天我们继续为大家介绍其中的图形验证码类库. 图形验证码是为了抵御恶意攻击出现的一种设计:例如用户登录.修改密 ...
- WPF中的DesignerProperties
在WPF开发过程中,最容易遇到的一个问题:就是在自定义控件的过程中写好业务逻辑后,在调用的地方,打开.xmal文件设计器时出现异常,经过排查发现是由于自定义控件初始化过程中需要进行赋值操作.为了能够让 ...