Python 如何使用3个冒号分隔符反向显示列表?

Python 如何使用3个冒号分隔符反向显示列表?,python,python-3.x,list,slice,reverse,Python,Python 3.x,List,Slice,Reverse,如何让第三条线路与第二条线路相同 list = [1,2,3,4,5,6,7,8,9,10] print(list[::-1]) print(list[-1:0:-1]) 这是我得到的结果: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] [10, 9, 8, 7, 6, 5, 4, 3, 2] 使用None: >>> list[-1:None:-1] [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] print(list[-1:None:-

如何让第三条线路与第二条线路相同

list = [1,2,3,4,5,6,7,8,9,10]
print(list[::-1])
print(list[-1:0:-1])
这是我得到的结果:

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
使用
None

>>> list[-1:None:-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
print(list[-1:None:-1])

您可以使用
-len(list)-1
,但是
None
更简单,不需要任何计算


顺便说一句,list是一个不好的变量名,因为它隐藏了内置项。

您应该在这里省略0:

print(list[-1:0:-1])
并将其写为

print(list[-1::-1])
或放置
None

>>> list[-1:None:-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
print(list[-1:None:-1])
原因是:当您在“3个冒号分隔符”中忽略停止值(或替换为
None
)时,将发生以下情况:

如果省略i或j或
None
,它们将成为“结束”值(结束取决于k的符号)


这里的
j
对应于停止值(并且
i
是开始,即
[i:j:k]

您可以使用以下列表切片方法来获得所需的结果

list=[1,2,3,4,5,6,7,8,9,10]
#使用空白:
打印(列表[:-1])
打印(列表[-1::-1])
#输出
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
#不使用:
打印(列表[:无:-1])
打印(列表[无:无:-1])
#输出
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
#使用布尔值:
打印(列表[-True::-True])
#输出
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
#使用布尔值:
打印(列表[~False::-1])
#输出
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
#长度函数的使用:
打印(列表[:-(len(列表)+1):-1])
#输出
#[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
s[-1:-len(s)-1:-1]