列表list切片

list的切片操作

list的切片操作

Python中可以对list使用索引来进行切片操作,其语法(Python3)如下:

a[:]           # a copy of the whole array
a[start:]      # items start through the rest of the array
a[:stop]       # items from the beginning through stop-1
a[start:stop]  # items start through stop-1

a[start:stop:step] # start through not past stop, by step

a[-1]    # last item in the array
a[-2:]   # last two items in the array
a[:-2]   # everything except the last two items


a[::-1]    # all items in the array, reversed
a[1::-1]   # the first two items, reversed
a[:-3:-1]  # the last two items, reversed
a[-3::-1]  # everything except the last two items, reversed

测试结果:

# 从0开始索引列表,索引值为整数
>>> a = list(range(10))  # 定义列表a
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:]  # 复制列表
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[0:]  # 从索引为0的列表元素开始迭代列表至列表结束
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[1:]  # 从索引为1的列表元素开始迭代列表至列表结束
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:9]  # 从索引为0的列表元素开始迭代列表至索引为8的列表元素,不包含索引为9的列表元素
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> a[3:5] # 从索引为3的列表元素开始迭代列表至索引为4的列表元素,不包含索引为5的列表元素
[3, 4]
>>> a[::1] # 从索引为0的列表元素开始索引列表,每次迭代索引值加1,直至列表结束
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[::2] # 从索引为0的列表元素开始索引列表,每次迭代索引值加2,直至列表结束
[0, 2, 4, 6, 8]
>>> a[3:9:2] # 从索引为3的列表元素开始索引列表,每次迭代索引值加2,直至索引为8的列表元素,不包含索引为9的列表元素
[3, 5, 7]

# 当索引值为负数时
>>> a[-1] # 列表的最后一个元素
9
>>> a[-2:] # 从列表的倒数第二个元素直至列表结束,即从索引值为-2的元素直至列表结束
[8, 9]
>>> a[:-1] # 从列表的第一个元素直至列表的倒数第二个元素结束,不包含最后一个列表元素
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> a[:-2] # 从列表的第一个元素直至列表的倒数第三个元素结束,不包含最后两个个列表元素
[0, 1, 2, 3, 4, 5, 6, 7]


# 当step为负值时,表示逆向索引列表
>>> a[::-1] # 反转列表,从列表最后一个元素到列表的第一个元素
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a[1::-1] # 从索引值为1的列表元素开始,逆向索引直列表开头
[1, 0]
>>> a[-3::-1] # 从索引值为-3的列表元素开始,逆向索引直列表开头
[7, 6, 5, 4, 3, 2, 1, 0]
>>> a[:-3:-1] # 从索引值为-1,逆向索引直索引为-2的元素结束,不包含索引为-3的元素
[9, 8]
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值