【廖雪峰python入门笔记】切片
1. 对list进行切片
对list进行切片
取一个list的部分元素是非常常见的操作。比如,一个list如下:
L = ['Adam', 'Lisa', 'Bart', 'Paul']
取前3个元素,应该怎么做?
笨办法:
>>> [L[0], L[1], L[2]]
['Adam', 'Lisa', 'Bart']
之所以是笨办法是因为扩展一下,取前N个元素就没辙了。
取前N个元素,也就是索引为0-(N-1)的元素,可以用循环:
>>> r = []
>>> n = 3
>>> for i in range(n): r.append(L[i])
>>> r
['Adam', 'Lisa', 'Bart']
对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片
(Slice)操作符,能大大简化这种操作。
对应上面的问题,取前3个元素,用一行代码就可以完成切片:
>>> L[0:3]
['Adam', 'Lisa', 'Bart']
L[0:3]表示,从索引0开始取,直到索引3为止,但不包括
索引3。即索引0,1,2,正好是3个元素。
如果第一个索引是0,还可以省略:
>>> L[:3]
['Adam', 'Lisa', 'Bart']
也可以从索引1开始,取出2个元素出来:
>>> L[1:3]
['Lisa', 'Bart']
只用一个 :
,表示从头到尾:
>>> L[:]
['Adam', 'Lisa', 'Bart', 'Paul']
因此,L[:]实际上复制
出了一个新list。
切片操作还可以指定第三个参数:
>>> L[::2]
['Adam', 'Bart']
第三个参数
表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。
把list换成tuple
,切片操作完全相同
,只是切片的结果也变成了tuple。
2. 倒序切片
对于list,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,试试:
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> L[-2:]
['Bart', 'Paul']>>> L[:-2]
['Adam', 'Lisa']>>> L[-3:-1]
['Lisa', 'Bart']>>> L[-4:-1:2]
['Adam', 'Bart']
记住倒数第一个元素的索引是-1。倒序切片包含
起始索引,不包含
结束索引。
3. 对字符串切片
字符串 'xxx'
和 Unicode字符串u'xxx'
也可以看成是一种list
,每个元素
就是一个字符
。因此,字符串也可以用切片操作,只是操作结果仍是字符串:
>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[-3:]
'EFG'
>>> 'ABCDEFG'[::2]
'ACEG'
在很多编程语言中,针对字符串提供了很多各种截取函数,其实目的就是对字符串切片。Python没有
针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。
【廖雪峰python入门笔记】切片相关推荐
- 【廖雪峰python入门笔记】列表生成式
1. 生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, ...
- 【廖雪峰python入门笔记】迭代
1. 迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过for ...
- 【廖雪峰python入门笔记】函数
1. 函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...
- 【廖雪峰python入门笔记】dict
1. dict 我们已经知道,list和tuple 可以用来表示顺序集合,例如,班里同学的名字: ['Adam', 'Lisa', 'Bart'] 或者考试的成绩列表: [95, 85, 59] 但是 ...
- 【廖雪峰python入门笔记】for循环
list或tuple可以表示一个有序集合.如果我们想依次访问一个list中的每一个元素呢?比如 list: L = ['Adam', 'Lisa', 'Bart'] print(L[0]) print ...
- 【廖雪峰python入门笔记】if语句
1. if语句及缩进规则 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if ...
- 【廖雪峰python入门笔记】tuple_创建单元素
tuple和list一样,可以包含 0 个.1个和任意多个元素. 包含多个元素的 tuple,前面我们已经创建过了. 包含 0 个元素的 tuple,也就是空tuple,直接用 ()表示: t = ( ...
- 【廖雪峰python入门笔记】list_按照索引访问
1. 按照索引访问list Python按照索引访问list 由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学: L = ['Adam', 'Lisa', ' ...
- 【廖雪峰python入门笔记】list_创建
1. list 列表:list 1. 是Python内置的一种数据类型 2. 是一种有序的集合 3. 可以随时添加和删除其中的元素 比如,列出班里所有同学的名字,就可以用一个list表示: ['Mic ...
最新文章
- python可以从事什么工作-学Python能干什么工作?工作前景怎么样?
- LeetCode精讲题 10正则表达式匹配(动态规划)
- mybatis 学习笔记:mybatis 初认识
- C#与数据库访问技术总结(十七)
- 【.NET 遇上 GraphQL】 ChilliCream 平台介绍
- C++ Editbox换行问题
- exe程序的启动过程
- HttpComponents组件探究 - HttpClient篇
- 【网络攻防技术】实验八——SQL注入实验
- AAAI17最佳论文:Label-Free Supervision of Neural Networks with Physics and Domain Knowledge
- 将Hexo个人博客部署到个人云服务器--最详细踩坑教程
- 常见bootloader介绍
- 基于设备指纹零感验证系统
- 大唐“痴情”男女-白居易-湘灵
- gateway官网解读(三)
- 华硕B250主板组装机安装win7及office2010
- 怎么让Eclipse对html和js代码自动提示
- Win10校园网宽带连接频繁秒断
- WindowsScript
- 解决使用selenium库出现的“Message: 'chromedriver' executable may have wrong permissions”问题