python列表切片基本原理

前段时间在学习python的过程中,遇到了一个关于切片的写法,感觉很奇怪:

>>> a = [1, 2, 3, 4]
# 通过切片实现了列表的倒序,乍一看,确实有点懵
>>> a[::-1]
[4, 3, 2, 1]

后来,通过查阅python学习手册,具体的第29章运算符重载,了解到如下知识。python在调用切片时,实际上是调用了自带的slice函数。

>>> a[::-1]
[4, 3, 2, 1]
# 这种写法和a[::-1]是对等的
>>> a[slice(None, None, -1)]
[4, 3, 2, 1]

我们再来看slice函数:
调用help(slice)之后,有如下构造器
slice(start, stop[, step])
即第一个参数是开始,第二个参数是结束,第三个位置是步长。
如此,再看a[::-1]就很容易理解了,开始位置0,结束位置直到最后,步长为-1

>>> a[1:]
[2, 3, 4]
>>> a[slice(1, None, None)]
[2, 3, 4]

>>> a[:]
[1, 2, 3, 4]
>>> a[slice(None, None, None)]
[1, 2, 3, 4]

哈哈,通过以上讲解,你还对python中的列表切片感到奇怪吗?就是个语法糖。有兴趣的话欢迎关注公众号:python小工具。一起学习python和pandas

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值