Python的切片是特别常用的功能,主要用于对列表的元素取值。使用切片也会让你的代码显得特别Pythonic。

切片的主要声明如下,假设现在有一个list,命名为alist:

alist = [0,1,2,3,4]

切片语法的基本形式为:

alist[start:stop:step]

可以看出对于列表的切片操作有三个参数,分别为:

start:起始位置

stop:终止位置

step:步长

三个参数都是可选参数,意义为list的下标,即index。step参数默认值为1。表现形式有以下几种:

alist[start:stop]

alist[start:]

alist[:stop]

alist[:]

第一种方式指定了start与stop参数,从start指定的下标开始取alist的元素,直到stop-1,例如 a[1:3] 的结果为 [1,2] 。

第二种方式会从start指定的下标开始,取alist剩余元素。例如 a[1:] 会得到 [1,2,3,4] 。

第三种方式会从alist的开始,取list元素,直到下标为stop-1,例如 a[:4] 会得到结果 [0,1,2,3]

第四种方式没有指定start与stop参数,则会返回整个列表。

需要注意的是, :stop 表示不在选定切片中的第一个值, alist[start:stop] 的取值类似于数学中的取值范围为 [start, stop) , 所以在步长默认为1的情况下, start-stop 的结果即为所取元素的数量。

负值用法

start与stop参数为负值

start与stop的值可以是负值,表示取值是从list的最后开始,而不是开头。 例如:

alist[-1]

alist[-3:]

alist[:-1]

[2,3,4]

[0,1,2,3]

step参数为负值

step为负值时候表示将列表逆向,最简单的例子如下:

alist[::-1]

输出结果为 [4,3,2,1,0] 。这个例子实际是以下面的这个形式返回,

[alist[-1], alist[-1-step], ..., alist[0]]

即从倒数第一个元素开始,每一步加上步长,因为这里步长为负数,所以是减法,直到alist的开头。 知道这个原理,就能明白一些加上了start与stop参数的复杂写法,例如:

指定了start参数

alist[1::-1]

实际上是这样返回:

[alist[1], alist[1-step], ..., alist[0]]

因此,返回的是 [1,0]

指定了stop参数

alist[:1:-1]

实际上是这样返回:

[alist[-1], alist[-1-step], ..., alist[stop+1]]

因此,返回的是 [4, 3, 2] 。

同时指定了start与stop参数

注意,由于是逆序,所以start参数应该大于stop参数。

alist[3:1:-1]

实际上是这样返回:

[alist[start], alist[start-step], ..., alist[stop+1]]

因此,返回的是 [3,2]

我们可以看出,

如果指定了start参数,则从start参数index开始取元素,直到遇到stop下标或者list的第一个元素。

如果未指定start参数,则从list倒数第一个元素开始,直到遇到stop下标或者list的第一个元素。

总结

切片语法的使用特别灵活,如果正确掌握了它的用法,能够简化你的代码。需要注意的是,Python也提供了slice类用于制造切片,例如:

alist[start:stop:step]

实际上等价于

alist[(slice(start,stop,step))]

以上所述是小编给大家介绍的Python 切片语法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

python切片语法-详解Python 切片语法相关推荐

  1. python流程控制-详解Python流程控制语句

    流程控制 流程:代码执行的过程 控制:对代码执行过程的把控 三大结构 顺序结构:代码默认从上到下,依次执行 分支结构:单项分支,双向分支,多项分支,巢状分支 循环结构:while循环和for循环 单项 ...

  2. python 标准输出_详解Python的标准输入输出

    本篇文章给大家分享的是详解Python的标准输入输出,内容挺不错的,希望可以帮助到有需要的朋友 一.标准输入输出 1.打印到屏幕 产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个 ...

  3. python import io_详解Python IO编程

    文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...

  4. python操作符op_详解python中的 is 操作符

    大家可以与Java中的 == 操作符相互印证一下,加深一下对引用和对象的理解.原问题: Python为什么直接运行和在命令行运行同样语句但结果却不同,他们的缓存机制不同吗? 其实,高票答案已经说得很详 ...

  5. python循环语句-详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

  6. python语言入门详解-python初级教程:入门详解

    python初级教程:入门详解 Crifan Li 目录 前言 .................................................................... ...

  7. python装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  8. python代码案例详解-Python编程:案例详解输出函数print

    先说说上一篇作业的答案. 1.Python编写的源程序扩展名为( A). A. py B. cpp C. doc D. mp4 2.阅读程序写结果. print("1+1") 第1 ...

  9. python数组排序sort_详解python中sort排序使用

    1.前言 昨天一学妹问我一个关于python的问题,当时在外忙碌,没时间细看.今天看一下,咋一看我还真的不知道这个问题,bookinfo.sort(reverse=True ,key=lambda x ...

  10. python装饰器详解-python装饰器使用实例详解

    这篇文章主要介绍了python装饰器使用实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python装饰器的作用就是在不想改变原函数代码的情 ...

最新文章

  1. php使用webservivce_基于SSM框架实现简单的登录注册的示例代码
  2. win8 explorer 进程频繁奔溃的原因及处理
  3. TypeError: rectangle() got an unexpected keyword argument ‘width‘报错:
  4. 《贝叶斯方法:概率编程与贝叶斯推断》一导读
  5. 关于Integer大小比较的问题
  6. HTML第八章ppt,html教程第八章(JavaSript核心语言对象).ppt
  7. 【Mybatis框架】输入映射-pojo包装类型
  8. 外贸B2C独立站玩不下去?
  9. Sql SUBSTR函数
  10. linux kernel基本构成的内容有下列哪些项_Linux下逻辑地址-线性地址-物理地址详解...
  11. python 参数带星号_python 函数参数的传递(参数带星号的说明)
  12. Linux之CentOS7.5安装及克隆
  13. 浅谈SQL基础操作概念
  14. 怎么说话比说什么更重要
  15. 如何设计hash函数
  16. 什么是 PHP? 为什么用 PHP? 有谁在用 PHP?
  17. Activiti 流程部署方式 activi 动态部署(高级源码篇)
  18. PTA乙级题解(110题全)
  19. MySQL中获取当前时间与时间戳
  20. 复杂度分析(大O表示法)

热门文章

  1. 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业
  2. Objective-C语法之代码块(block)的使用
  3. sizeof 和strlen的区别
  4. difftime(转)
  5. oracle数据库迁移方案二
  6. textContent与innerText的不同(转)
  7. 导入数据的sql语句,两表互导
  8. python语法基础学习-Python基础语法精心总结!看完都知道的可以往下继续学习了...
  9. python基础教程攻略-python基础教程(一)
  10. python可以干什么-学了Python可以用来干什么呢?