2 a1207338829 a1207338829 于 2016.03.10 21:30 提问

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,如有高手能为我解决这个疑惑,在下感激不尽.

5个回答

sinat_30665603
sinat_30665603   2016.03.12 19:18
已采纳

切片永远向右看
-1只决定排序方向
print range(1, 101)[-4::-1]

print range(1, 101)[:-4:-1]

print range(1, 101)[4::-1]
看看这三个结果

a1207338829
a1207338829 恩 我懂了 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]切片得到的结果是一个列表的两段数据 二者没有可比性 所以为空
接近 2 年之前 回复
zhangpengfei104
zhangpengfei104   2016.03.11 19:40

首先你看到了-1这代表着从相反方向取值,然后看-4代表着是从后往前的第四个元素开始的,也就是4.如果是-1就是4.你也可以这样理解正方向
第一个数的索引是0;负方向第一个数的索引是-1,不可能是-0,这样就没有意义了。所以-4就代表着方向开始的第4个数。

devmiao
devmiao   Ds   Rxr 2016.03.10 22:13

-1相当于4,-2相当于3,所以-4就是1

a1207338829
a1207338829 恩 这个我知道 只是不理解 l[-4::-1]为什么会得到这样的结果
接近 2 年之前 回复
enpterexpress
enpterexpress   2016.03.10 22:35

I[-4:-1]=[1,2,3,4]

a1207338829
a1207338829 l[-4:-1]是等于[1,2,3]的 不包括-1下标指向的元素
接近 2 年之前 回复
a1207338829
a1207338829   2016.03.13 22:45

恩 我懂了 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]切片得到的结果是一个列表的两段数据 二者没有可比性 所以为空

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!