Pycharm中3.71版本的正倒序切片问题?

新手上路,请多包涵

题目描述

正倒序切片索引不对应的问题

题目来源及自己的思路

自己今天在学习代码时看到的关于切片的问题做出自己的一点尝试,发现了一点问题

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
L = [0,1,2,3,4]
print(L[-5])
print(L[:5])
print(L[-5:0:-1])
print(L[-1:0:-1])
print(L[-1::-1])

你期待的结果是什么?实际看到的错误信息又是什么?

我觉得结果应该是:
0
[0,1,2,3,4]
0
[4,3,2,1,0]
[4,3,2,1,0]

0
[0, 1, 2, 3, 4]
[]
[4, 3, 2, 1]
[4, 3, 2, 1, 0]

为什么正序的索引是0~4
但是倒序的索引-1~-6才能完全展示完成?
而单独使用L[-6]却显示超出list外

阅读 2.2k
2 个回答

序列图

  1. 范围采用左闭右开(顾头不顾尾),即第一个索引元素包含在分片内,第二个则不包含在分片内
  2. print(L[-5:0:-1])相当于print(L[0:0:-1])
  3. print(L[-1:0:-1])相当于print(L[4:0:-1])

切片的区间遵循【前开后闭】原则:正序的索引是0~4,那么区间就是0~5;倒序的索引是-1~-5,那么区间就是-1~-6。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题