In [122]: a = range(10)
In [123]: a[: : -1]
Out[123]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
你能解释一下[:: - 1]吗?
a [:]显然是可以理解的 - > “从头开始(冒号前的空格)并检索列表到结尾(冒号后的空格)”
但我没有得到两个冒号在表达式[:::-1]中实际做的事情。
答案 0 :(得分:0)
第三个参数(在两个:之后)是步长。 -1可以解释为向后踩踏。换句话说,颠倒列表。
尝试使用-2步长,即a[::-2]
,您将获得:
[9, 7, 5, 3, 1]
希望这有帮助。
这里有更详尽的答案和解释Explain Python's slice notation
答案 1 :(得分:0)
切片有三个参数,就像range
:start,stop和step:
[0, 1, 2, 3, 4, 5][0:4:2] == list(range(0, 4, 2)) # every second element from 0 to 3
否定步骤使切片通过iterable 向后工作。没有开始和停止(即只是步骤[::-1]
),它从结束开始,因为它正在向后工作。