【发布时间】:2014-03-19 00:59:39
【问题描述】:
In [122]: a = range(10)
In [123]: a[: : -1]
Out[123]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
你能解释一下表达式 a[: : -1] 吗?
a[:] 很容易理解 -> “从头开始(冒号前的空格)并检索列表直到最后(冒号后的空格)”
但我没有得到表达式 a[: : -1] 中两个冒号的实际作用。
【问题讨论】:
-
我的问题有点不同。 In [124]: a[: : 2] Out[124]: [0, 2, 4, 6, 8] 如果我们将 i 视为 a[: : i] 中的步长,很明显输出将是像 [start, start + step, start + 2*step.... 等等]。所以在 a[: : -1] 它必须像 [0, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 但事实并非如此
-
终于明白了!!! step 的负值改变了 start 和 end 的解释。所以在负步的情况下开始变成结束,结束变成开始
标签: python-2.7