Python——切片
来源:互联网 发布:遥感数据销售 编辑:程序博客网 时间:2024/05/22 17:43
python中的 str、tuple、list能用[start:end:step]的形式快速取得所需要的值。
[start,end) 左开右闭 ,例如,[1,2]实际只取第二个元素
需要注意的是,列表切片产生的是列表的副本,与原列表不是同一份空间。
start默认为0,end不填则取值至最后
list=range(100)list[2:10] #结果[2, 3, 4, 5, 6, 7, 8, 9](0,1,2,3,4,5)[:3] #结果(0, 1, 2) 'abcdefg'[4:6] # 结果'ef'
step表示取值间隔
[0,1,2,3,4,5,6,7,8,9][:10:2] #隔两个数取一个元素[0, 2, 4, 6, 8]
start,end的为负数时,-1指倒数第一个元素,-2为倒数第二个
list=range(100)list[-10:] #倒数第十个至最后 [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]list[:-80] # 开始至倒数-80个 [0,1,...,19]
step为负值时从右往左取值,start表示的位置应该在end的右边
此时start默认为-1,end默认为0
[0,1,2,3,4,5,6,7,8,9][:-10:-2] #step为负,从右往左取元素[9, 7, 5, 3, 1] start为-1,[0,1,2,3,4,5,6,7,8,9][5:9:-2] #[] start为在end的左边,返回空的list[0,1,2,3,4,5,6,7,8,9][9:5:-1] # [9, 8, 7, 6][0,1,2,3,4,5,6,7,8,9][5::-1] # [5, 4, 3, 2, 1, 0]
经典运用,翻转字符串
'abcdef'[::-1] #倒转 'fedcba'
扩展:赋值,删除
list的切片,内部是调用getitem,setitem,delitem和slice函数。而slice函数又是和range()函数相关的。
给切片传递的键是一个特殊的slice对象。该对象拥有可描述所请求切片方位的属性,例如:
>>> list2=[0,1,2,3,4,5,6,7,8,9]>>> list2[1:3]=['a','a'] >>> list2[0, 'a', 'a', 3, 4, 5, 6, 7, 8, 9]>>> list2[1:0]=['b','b'] #这里的end的值小于start时表示在插入,不覆盖>>> list2 #在第二个元素(下标1)前插入[0, 'b', 'b', 'a', 'a', 3, 4, 5, 6, 7, 8, 9]>>> del list2[3:5]>>> list2[0, 'a', 'a', 5, 6, 7, 8, 9]
a = [ 1, 2, 3, 4, 5, 6 ]x = a [ 1 : 5 ] # x = a.__getitem__( slice ( 1, 5, None ) )a [ 1 : 3 ] = [10, 11, 12 ] # a.__setitem__( slice ( 1, 3, None ), [ 10, 11, 12 ] )del a [ 1 : 4 ] # a.__delitem__( slice ( 1, 4, None ) )
阅读全文
0 0
- Python——切片
- Python—切片操作
- python学习——切片
- Python——6切片
- Python——切片操作
- Python——切片备忘
- python基础—迭代器 | 切片
- Python学习笔记——切片操作
- Python——高级特性 切片
- Python入门——切片操作
- 【Python】学习笔记——-4.1、切片
- python语言学习——关于切片
- Python学习(五)——切片
- Python的高级特征——切片
- python知识—切片/迭代
- python基础知识——五种数据类型+切片操作
- 廖雪峰老师——Python入门( 切片 )
- python——切片 迭代 列表生成式 生成器
- MYSQL学习笔记(八)
- 混合&原型继承改良版
- Linux中的touch命令总结(一)
- 纯干货分享:CCD图像传感器知识全解,超详细!
- 单例模式1
- Python——切片
- JavaScript基础
- if判断语句
- 派生类成员的访问属性
- R语言lattice包介绍
- hdoj 1040 As Easy As A+B(zz)
- 第五讲 任务依赖关系和排序
- JSP模式&JDBC加强
- Mysql多表联合查询