python之切片的理解
来源:互联网 发布:c#课本编程题及答案 编辑:程序博客网 时间:2024/06/05 04:17
取一个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。
题目练习:
range()函数可以创建一个数列:
>>> range(1, 101)[1, 2, 3, ..., 100]
请利用切片,取出:
1. 前10个数;
2. 3的倍数;
3. 不大于50的5的倍数。
L = range(1, 101)
print L[0:10]
print L[2::3]
print L[4:50:5]
0 0
- python之切片的理解
- python的切片的理解
- Python-切片的理解(Slicing)
- Python中切片的理解
- 彻底理解Python切片
- python 之切片的另一个使用方式
- Python入门 之 切片
- python之切片
- 五.Python之切片
- python之 切片--妙用
- PYTHON之切片操作
- python之切片操作
- Python 基础知识之 切片
- 彻底理解Python切片 关于list的insert函数
- python强大的切片
- python的切片[]
- python切片的问题
- python切片的使用
- LeetCode Weekly Contest 32解题思路
- Python:10分钟搞定不写代码的爬虫
- C# Action<T>、Func<T>、Predicate<T>委托的区别、用法
- 2_android studio工具用法积累
- 一些字符函数的实现。
- python之切片的理解
- 常见的电脑病毒
- 程序员面试金典--面试32之碰撞的蚂蚁
- 《Effective Modern C++》读书笔记(1) -- 模板类型推导(template type deduction)
- Ajax之在SSM中的json用法
- jquery与php交互之GET、 POST
- tips
- log4j的基本配置文件
- 1092. To Buy or Not to Buy (20)