问题描述
- python题,已知l=[1,2,3,4],那么l[-4::-1]等于什么
-
我们知道python列表有一个很神奇的功能list[::-1]是能将列表中的元素取相反的顺序,于是乎我对这个-1产生了很大得疑惑.同样已知l=[1,2,3,4],按照逻辑l[1:3:-1]是等于l[1:3][::-1],可是我得到的却是一个空的列表.同样l[-4::-1]应当和l[::-1]得到同样的结果,可是却得到了[1].我使用的python版本为3.4.3,如有高手能为我解决这个疑惑,在下感激不尽.
解决方案
切片永远向右看
-1只决定排序方向
print range(1, 101)[-4::-1]
print range(1, 101)[:-4:-1]
print range(1, 101)[4::-1]
看看这三个结果
解决方案二:
首先你看到了-1这代表着从相反方向取值,然后看-4代表着是从后往前的第四个元素开始的,也就是4.如果是-1就是4.你也可以这样理解正方向
第一个数的索引是0;负方向第一个数的索引是-1,不可能是-0,这样就没有意义了。所以-4就代表着方向开始的第4个数。
解决方案三:
-1相当于4,-2相当于3,所以-4就是1
解决方案四:
I[-4:-1]=[1,2,3,4]
解决方案五:
恩 我懂了 l[::-1] 使列表反向排列 l[-4::-1]表示l列表中除去l[-4:]的其它元素的反向排列 l[:4:-1]表示除去l[:4]和l[4]的其它元素的反向排列
l[3:5:-1]或者[-5:-3:-1]之所以得到空列表是因为使用l[3:5] l[-5:-3]切片得到的结果是一个列表的两段数据 二者没有可比性 所以为空
时间: 2024-11-26 15:56:42