a1207338829
a1207338829
采纳率100%
2016-03-10 13:30 阅读 4.5k

python题,已知l=[1,2,3,4],那么l[-4::-1]等于什么

20

我们知道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 斯温jack 2016-03-12 11:18

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

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

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

    点赞 1 评论 复制链接分享
  • devmiao devmiao 2016-03-10 14:13

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

    点赞 评论 复制链接分享
  • enpterexpress 把分全给哥 2016-03-10 14:35

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

    点赞 评论 复制链接分享
  • zhangpengfei104 爱哭的猫ff 2016-03-11 11:40

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

    点赞 评论 复制链接分享
  • a1207338829 a1207338829 2016-03-13 14: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]切片得到的结果是一个列表的两段数据 二者没有可比性 所以为空

    点赞 评论 复制链接分享

相关推荐