python切片语法-详解Python 切片语法
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 切片语法相关推荐
- python流程控制-详解Python流程控制语句
流程控制 流程:代码执行的过程 控制:对代码执行过程的把控 三大结构 顺序结构:代码默认从上到下,依次执行 分支结构:单项分支,双向分支,多项分支,巢状分支 循环结构:while循环和for循环 单项 ...
- python 标准输出_详解Python的标准输入输出
本篇文章给大家分享的是详解Python的标准输入输出,内容挺不错的,希望可以帮助到有需要的朋友 一.标准输入输出 1.打印到屏幕 产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个 ...
- python import io_详解Python IO编程
文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...
- python操作符op_详解python中的 is 操作符
大家可以与Java中的 == 操作符相互印证一下,加深一下对引用和对象的理解.原问题: Python为什么直接运行和在命令行运行同样语句但结果却不同,他们的缓存机制不同吗? 其实,高票答案已经说得很详 ...
- python循环语句-详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
- python语言入门详解-python初级教程:入门详解
python初级教程:入门详解 Crifan Li 目录 前言 .................................................................... ...
- python装饰器详解-Python装饰器基础概念与用法详解
本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...
- python代码案例详解-Python编程:案例详解输出函数print
先说说上一篇作业的答案. 1.Python编写的源程序扩展名为( A). A. py B. cpp C. doc D. mp4 2.阅读程序写结果. print("1+1") 第1 ...
- python数组排序sort_详解python中sort排序使用
1.前言 昨天一学妹问我一个关于python的问题,当时在外忙碌,没时间细看.今天看一下,咋一看我还真的不知道这个问题,bookinfo.sort(reverse=True ,key=lambda x ...
- python装饰器详解-python装饰器使用实例详解
这篇文章主要介绍了python装饰器使用实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python装饰器的作用就是在不想改变原函数代码的情 ...
最新文章
- php使用webservivce_基于SSM框架实现简单的登录注册的示例代码
- win8 explorer 进程频繁奔溃的原因及处理
- TypeError: rectangle() got an unexpected keyword argument ‘width‘报错:
- 《贝叶斯方法:概率编程与贝叶斯推断》一导读
- 关于Integer大小比较的问题
- HTML第八章ppt,html教程第八章(JavaSript核心语言对象).ppt
- 【Mybatis框架】输入映射-pojo包装类型
- 外贸B2C独立站玩不下去?
- Sql SUBSTR函数
- linux kernel基本构成的内容有下列哪些项_Linux下逻辑地址-线性地址-物理地址详解...
- python 参数带星号_python 函数参数的传递(参数带星号的说明)
- Linux之CentOS7.5安装及克隆
- 浅谈SQL基础操作概念
- 怎么说话比说什么更重要
- 如何设计hash函数
- 什么是 PHP? 为什么用 PHP? 有谁在用 PHP?
- Activiti 流程部署方式 activi 动态部署(高级源码篇)
- PTA乙级题解(110题全)
- MySQL中获取当前时间与时间戳
- 复杂度分析(大O表示法)
热门文章
- 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业
- Objective-C语法之代码块(block)的使用
- sizeof 和strlen的区别
- difftime(转)
- oracle数据库迁移方案二
- textContent与innerText的不同(转)
- 导入数据的sql语句,两表互导
- python语法基础学习-Python基础语法精心总结!看完都知道的可以往下继续学习了...
- python基础教程攻略-python基础教程(一)
- python可以干什么-学了Python可以用来干什么呢?