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

问题描述 投票:4回答:3

如何使第三行与第二行相同?

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]
python python-3.x list slice reverse
3个回答
3
投票

您应该在这里省略0:

print(list[-1:0:-1])

并写为

print(list[-1::-1])

或地点None

print(list[-1:None:-1])

原因是:当在“ 3个冒号分隔符”中省略stop值(或替换为None)时,将发生this

如果省略ijNone,它们将成为“结束”值(该结束取决于k的符号)。

此处j对应于终止值(i是起始值,即[i:j:k]


2
投票

使用None

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

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

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

BTW list是不好的变量名,因为它隐藏了内置list


0
投票

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

list
© www.soinside.com 2019 - 2024. All rights reserved.