【发布时间】:2016-06-05 10:25:17
【问题描述】:
只是想知道 reverse() 和 [::-1] 在引用方面的区别。
例如
p = [1,2,3]
x = p[::-1]
print(x)
print(p)
p.reverse()
print(p ==p[::-1])
print(p == x)
所以输出是
[3,2,1]
[1,2,3]
False
True
【问题讨论】:
-
reverse()原地反转列表,[::-1]以相反的顺序克隆它。 -
你的输出没有显示出不同之处吗?
-
请注意,如果您实际上并不需要具有相反顺序的值的列表(只是一个可迭代的),则使用
reversed内置函数会更有效。像for value in reversed(p)这样的东西不会增加大量的开销(与任何其他迭代相比)。p[::-1]和p.reverse()都是O(N),但reversed(p)是O(1)。当然迭代它是O(N),但是在p上迭代也是如此,而不需要反转。
标签: python python-3.x