Python中的列表切片和索引

列表的切片

  • 切片:
    从列表中切出元素,重新组成一个新的列表
  • 格式:
    [(起始索引a):(结束索引b):(步长)]
>>> l=[1,2,3,4,5,6]
>>> l[0:1]
[1]
>>> l[3::2]
[4, 6]
>>> l[5::-1]
[6, 5, 4, 3, 2, 1]
>>> l[5:2:-1]
[6, 5, 4]
>>> l[8::-1]
[6, 5, 4, 3, 2, 1]
>>> l[:-10:-1]
[6, 5, 4, 3, 2, 1]


注意:当起始索引省略时,默认从第一个开始;
     当起始索引超出列表索引范围时,默认从最后一个开始;
     当结束索引省略时,默认到最后一个结束;
     当结束索引超出列表索引范围时,默认到最后一个结束;
     当步长为负时,反向切片;
  • 切片赋值改变元素
    格式:l [::] = 可迭代对象
>>> l=[1,2,3,4]
>>> l[:2]=[5,6]
>>> print(l)
[5, 6, 3, 4]
  • 切片赋值常用于数据的插入
>>> l=[1,2,3,4]
>>> l[2:2]=[5]
>>> print(l)
[1, 2, 5, 3, 4]
>>> 
>>> l=[1,2,3]
>>> l[len(l):]=[8,7,6]
>>> print(l)
[1, 2, 3, 8, 7, 6]
>>> l[-1:-1]=['xiaoming']
>>> print(l)
[1, 2, 3, 8, 7, 'xiaoming', 6]
>>> 

当超出列表索引范围时候,自动插入到列表末尾
>>> l=[16,17,18]
>>> l[5:]=[4,5]
>>> print(l)
[16, 17, 18, 4, 5]
>>> 
  • 注意事项:
    对于步长不等于的1的切片赋值,赋值运算符右侧的可迭代对象提供的个数一定要等于切片切出的段数
>>> l=[1,2,3,4,5,6,7,8]
>>> l[1::2]='ABCD'
>>> print(l)
[1, 'A', 3, 'B', 5, 'C', 7, 'D']
>>> 

错误示范:
>>> l=[1,2,3,4,5,6,7,8]
>>> l[1::2]='ABCDEF'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 6 to extended slice of size 4
>>> 
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值