Python列表切片操作
列表的切片操作完整的切片表达式使用2个冒号分隔的3个参数[start : stop : step]第一个数字表示切片开始的位置(默认为0),第二个数字表示切片截至(但不包含)位置(默认为列表长度),第三个数字表示切片的步长(默认为1),当步长省略时可以省略最后一个冒号。可以使用切片来截取列表中的任何部分,并得到一个新列表,也可以通过切片来修改和删除列表中的部分元素或者增加元素。(切片操作不会因为下
·
列表的切片操作
完整的切片表达式使用2个冒号分隔的3个参数[start : stop : step]
第一个数字表示切片开始的位置(默认为0),第二个数字表示切片截至(但不包含)位置(默认为列表长度),第三个数字表示切片的步长(默认为1),当步长省略时可以省略最后一个冒号。
可以使用切片来截取列表中的任何部分,并得到一个新列表,也可以通过切片来修改和删除列表中的部分元素或者增加元素。(切片操作不会因为下标越界而抛出异常)
>>> a = [0,1,2,3,4,5,6,7]
(1)切取单个元素
#当索引只有一个数时,表示切取单个元素
>>>a[0]
>>>0
>>>a[-1]
>>>7
(2)切取完整列表
>>>a[:] #表示从左往右切取
>>>[0,1,2,3,4,5,6,7]
>>>a[::] #表示从左往右切取
>>>[0,1,2,3,4,5,6,7]
>>>a[::-1] #步长为-1,表示从右往左
>>>[7,6,5,4,3,2,1,0]
(3)start和stop都为正数的情况
>>>a[1,5] #表示切取从下标为1的元素至下标为5的元素(不包含5)
>>>[1,2,3,4]
#默认step=1 从左往右取值
>>>a[1:5:-1]
>>>[] #说明为切取到数据
#step=-1 表示从右往左切取,而start=1和step=5说明从左往右切取,产生矛盾,所以为空
#同理
>>>a[5:1]
>>>[] #输出为空
#step省略,默认为1,表示从左往右切取,而start=5和step=1说明从右往左切取,产生矛盾,所以为空
>>>a[:5]
>>>[0,1,2,3,4]
#step默认为1,start默认为端点(因为step为正数,此处端点为起点),即从下表为0的起点取到下标为5的元素
#同理
>>>a[:5:-1]
>>>[7,6]
# step=-1,表示从右往左切取,start默认为端点(因为step为负数,此处端点为终点),即从最后一个元素切取至下标为5的元素
>>>a[5::-1]
>>> [5, 4, 3, 2, 1, 0]
#step=-1,表示从右往左取值,即从下标为5的元素取到起点
(4)start和stop都为负数的情况
>>>a[-1,-5]
>>>[] #说明为切取到数据
#默认step=1 表示从左往右取值,而start=-1,stop=-5表示从右往左取值,产生矛盾,所以为空
>>>a[-5:-1:-1] #step=-1,表示从右往左,而start=-5,stop=-1表示从左往右取值,产生矛盾,所以为空
>>>[]
>>>a[-1:-5:-1]
>>>[7,6,5,4] #step=-1表示从右往左,从下标为-1的元素切取到下标为-5的元素
#同理
>>>a[-5:-1] #step默认为1,表示从左往右,从下标为-5的元素切取到下标为-1的元素
>>>[3,4,5,6]
(3)start和stop为相反数的情况
>>>a[1:-5] #表示切取从下标为1的元素至下标为-5的元素
>>>[1,2]
#默认step=1 从左往右取值
>>>a[-1:5] #表示从左往右切取从下标为-1的元素至下标为5的元素
>>>[] #产生矛盾
>>>a[1:-5:-1] #表示从右往左切取从下标为1的元素至下标为-5的元素
>>>[] #矛盾
>>>a[-1:5:-1] #表示从右往左切取从下标为-1的元素至下标为5的元素
>>>[7,6]
#step=-1 从右往左取值
(4)用法
1.取偶数位置
>>>a[::2]
>>>[0,2,4,6]
2.拷贝列表
>>>b = a[:]
>>>print(b)
>>>[0,1,2,3,4,5,6,7]
>>>print(id(a))
>>>1797956919944
>>>print(id(b))
>>>1797961682056
#该拷贝属于浅拷贝,只拷贝最外层元素
3.修改单个元素
>>>a[1]=10
[0,10,2,3,4,5,6,7]
4.替换元素
>>>a[1:3]=[0,0]
[0,0,0,0,4,5,6,7]
python自学笔记 仅供参考
更多推荐
已为社区贡献3条内容
所有评论(0)