Python高级特性:切片
切片的目的是实现取一个list或tuple的部分元素
学习自廖雪峰,个人理解如下: 取列表L的前三个元素 >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] -----------------------------------------------------------
方法一:
笨办法: >>> [L[], L[], L[]]
['Michael', 'Sarah', 'Tracy']
之所以是笨办法是因为扩展一下,取前N个元素就没辙了。
------------------------------------------------------------
方法二:
取前N个元素,也就是索引为0-(N-)的元素,可以用循环: >>> r = []
>>> n =
>>> for i in range(n):
... r.append(L[i])
...
>>> r
['Michael', 'Sarah', 'Tracy']
对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。
循环也是不错的方式,不过下面Python提供现成的实现方式 -------------------------------------------------------------
对应上面的问题,取前3个元素,用一行代码就可以完成切片: >>> L[:]
['Michael', 'Sarah', 'Tracy']
L[:]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,,,正好是3个元素。 如果第一个索引是0,还可以省略: >>> L[:]
['Michael', 'Sarah', 'Tracy']
也可以从索引1开始,取出2个元素出来: >>> L[:]
['Sarah', 'Tracy']
类似的,既然Python支持L[-]取倒数第一个元素,那么它同样支持倒数切片,试试: >>> L[-:]
['Bob', 'Jack']
>>> L[-:-]
['Bob']
记住倒数第一个元素的索引是-。 切片操作十分有用。我们先创建一个0-99的数列: >>> L = list(range())
>>> L
[, , , , ..., ]
可以通过切片轻松取出某一段数列。比如前10个数: >>> L[:]
[, , , , , , , , , ]
后10个数: >>> L[-:]
[, , , , , , , , , ]
前11-20个数: >>> L[:]
[, , , , , , , , , ]
前10个数,每两个取一个: >>> L[::]
[, , , , ]
所有数,每5个取一个: >>> L[::]
[, , , , , , , , , , , , , , , , , , , ]
甚至什么都不写,只写[:]就可以原样复制一个list: >>> L[:]
[, , , , ..., ]
tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple: >>> (, , , , , )[:]
(, , )
字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串: >>> 'ABCDEFG'[:]
'ABC'
>>> 'ABCDEFG'[::]
'ACEG'
Python高级特性:切片的更多相关文章
- Python高级特性(切片,迭代,列表生成式,生成器,迭代器)
掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n ...
- 【转】Python高级特性——切片(Slice)
摘录廖雪峰网站 定义一个list: 1 L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >>> L[0],L[1],L[2] ...
- Python高级特性——切片(Slice)
摘录廖雪峰网站 定义一个list: L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >>> L[0],L[1],L[2] (' ...
- Day7 python高级特性-- 切片 Slice
先举一个例子,取list或tuple中的某几个元素: 1.取 ['a','b','c','d','e','f'] 第1.2.5.6个元素: >>> a = [' ...
- 三、python高级特性(切片、迭代、列表生成器、生成器)
1.python高级特性 1.1切片 list列表 L=['Mli','add','sal','saoo','Lkkl'] L[0:3] #即为['Mli','add','sal'] 从索引0开始 ...
- python高级特性:切片/迭代/列表生成式/生成器
廖雪峰老师的教程上学来的,地址:python高级特性 下面以几个具体示例演示用法: 一.切片 1.1 利用切片实现trim def trim(s): while s[:1] == " &qu ...
- python高级特性和高阶函数
python高级特性 1.集合的推导式 列表推导式,使用一句表达式构造一个新列表,可包含过滤.转换等操作. 语法:[exp for item in collection if codition] if ...
- Python高级特性(3): Classes和Metaclasses(转)
原文:Python高级特性(3): Classes和Metaclasses 类和对象 类和函数一样都是Python中的对象.当一个类定义完成之后,Python将创建一个“类对象”并将其赋值给一个同名变 ...
- Python高级特性(2):Closures、Decorators和functools(转)
原文:Python高级特性(2):Closures.Decorators和functools 装饰器(Decorators) 装饰器是这样一种设计模式:如果一个类希望添加其他类的一些功能,而不希望通过 ...
- Python高级特性(1):Iterators、Generators和itertools(转)
译文:Python高级特性(1):Iterators.Generators和itertools [译注]:作为一门动态脚本语言,Python 对编程初学者而言很友好,丰富的第三方库能够给使用者带来很大 ...
随机推荐
- Scala - 快速学习04 - 求值策略
表达式求值策略(Evaluation Strategy) Scala中所有的运算都是基于表达式的. Call By Value - 对函数实参求值,且仅求值一次:函数调用之前对所有表达式进行求值 Ca ...
- requests 处理异常错误 requests.exceptions.ConnectionError HTTPSConnectionPool [Errno 10060]
使用python requests模块调用vmallarg.vmall.com接口API时报如下错误: requests.exceptions.ConnectionError: HTTPSConnec ...
- MapReduce中的Join
一. MR中的join的两种方式: 1.reduce side join(面试题) reduce side join是一种最简单的join方式,其主要思想如下: 在map阶段,map函数同时读取两个文 ...
- Quartz使用记录总结
Quartz是一个任务调度框架,最近在项目中有用到,所以做个记录总结. 一.主要元素 Scheduler:调度器,控制任务的调度,将JobDetail和Trigger注册到Scheduler加以控制. ...
- Vc数据库编程基础MySql数据库的常见库命令.跟表操作命令
Vc数据库编程基础MySql数据库的常见操作 一丶数据库常见的库操作 1.1查看全部数据库 命令: show databases 1.2 创建数据库 命令: Create database 数据库名 ...
- 【转载】ucos临界段
其实很简单: 临界段就是不可中断的程序段,比如从UART中读取当前传递回来的值,如果有UART中断,此时这个值又会改变.同样临界段就是保护这类全局变量,如在读取时间节拍时,不应该被时钟更新时钟 ...
- 开发-封闭原则(OCP)
1.什么是“开放-封闭” 随着软件系统规模的不断增大,软件系统的维护和修改的复杂性不断提高,这种困境促使法国工程院士Bertrand Meyer在1998年提出了“开放-封闭”(Open-Close ...
- .Net Core 中间件之静态文件(StaticFiles)源码解析
一.介绍 在介绍静态文件中间件之前,先介绍 ContentRoot和WebRoot概念. ContentRoot:指web的项目的文件夹,包括bin和webroot文件夹. WebRoot:一般指Co ...
- DRF之项目搭建
DRF,全称Django Restful Framework,是一个基于Django的Restful接口框架,是主要用来做API接口的,为前端提供数据的接口.在前面一片博客中,我们构建了一个vue的项 ...
- htmlUnit加持,网络小蜘蛛的超级进化
前言 前段时间写了个小说线上采集阅读(猛戳这里:https://www.cnblogs.com/huanzi-qch/p/9817831.html),当我们去采集起点网的小说目录时发现目录数据没有在h ...