在python中反转列表

时间:2014-02-18 23:38:16

标签: python-2.7

In [122]: a = range(10)

In [123]: a[: : -1]
Out[123]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

你能解释一下[:: - 1]吗?

a [:]显然是可以理解的 - > “从头开始(冒号前的空格)并检索列表到结尾(冒号后的空格)”

但我没有得到两个冒号在表达式[:::-1]中实际做的事情。

2 个答案:

答案 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]),它从结束开始,因为它正在向后工作。