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]