第5条了解切割序列的方法

Python提供切片操作(slice),可以轻松的访问序列中的某段子集元素。Python常见的数据元素list,str,和bytes均提供slice操作。同时切割操作可以通过__getitem____setitem__特殊方法实现。

切割的基本操作为:somList[start:end],表示的区间为左闭右开区间,即[start,end)

注意:很多语言的区间都是左闭右开

1. 当start==0或者end==序列长度时,可以省略
a = ['a','b','c','d','e','f']
print(a[0:2])
print(a[:2])
print(a[2:len(a)]
print(a[2:])
2.在赋值时,对左侧列表使用切割操作,会将该列表中处在指定范围内的对象替换为新值;如果左侧切片没有指定索引,那么则会被右侧列表替换掉(即使长度不同)
print('Before:',a)
a[2:5] = [2,3,4] #指定位置被修改
print('After:',a)
#################
b = a
a[:] = [2,3,4] # 被替换
assert a is b
print('After:',a)
3.如果在切割时,右侧列表的起止索引未指定,那么会产生一个原列表的拷贝
copy_list = a[:]
print(copy_list)
4.在同一切片操作中,不要同时使用startendstride

python提供someList[start:end:stride]形式,实现步进切割,也就是说每隔stride步长取一个元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值