列表切片知识

本文介绍了Python列表切片的使用方法,包括切片的书写形式[i:i+n:m],其中i是起始索引,i+n是结束位置,m是间隔。通过实例展示了如何获取列表的子集、按间隔过滤元素以及翻转列表。同时强调了步长不能为0,以及负数步长在切片中的应用。
摘要由CSDN通过智能技术生成

1、切片的基础用法

列表是 Python 中极为基础且重要的一种数据结构,也是最能发挥切片的用处的一种数据结构,所以在前两节,我将以列表为例介绍切片的一些常见用法。

首先是切片的书写形式:[i : i+n : m] ;其中,i 是切片的起始索引值,为列表首位时可省略;i+n 是切片的结束位置,为列表末位时可省略;m 可以不提供,默认值是1,不允许为0 ,当m为负数时,列表翻转。注意:这些值都可以大于列表长度,不会报越界。

切片的基本含义是:从序列的第i位索引起,向右取到后n位元素为止,按m间隔过滤 。
li = [1, 4, 5, 6, 7, 9, 11, 14, 16]

以下写法都可以表示整个列表,其中 X >= len(li)

li[0:X] == li[0:] == li[:X] == li[:]

== li[::] == li[-X:X] == li[-X:]

li[1:5] == [4,5,6,7] # 从1起,取5-1位元素

li[1:5:2] == [4,6] # 从1起,取5-1位元素,按2间隔过滤

li[-1:] == [16] # 取倒数第一个元素

li[-4:-2] == [9, 11] # 从倒数第四起,取-2-(-4)=2位元素

li[:-2] == li[-len(li):-2]

== [1,4,5,6,7,9,11] # 从头开始,取-2-(-len(li))=7位元素

步长为负数时,列表先翻转,再截取

li[::-1] == [16,14,11,9,7,6,5,4,1] # 翻转整个列表

li[::-2] == [16,11,7,5,1] # 翻转整个列表,再按2间隔过滤

li[:-5:-1] == [16,14,11,9] # 翻转整个列表,取-5-(-len(li))=4位元素

li[:-5:-3] == [16,9] # 翻转整个列表,取-5-(-len(li))=4位元素,再按3间隔过滤

切片的步长不可以为0

li[::0] # 报错(ValueError: slice step cannot be zero)
单个样例视图如下:
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

同学yes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值