【问题标题】:Difference between reverse and [::-1]反向和 [::-1] 之间的区别
【发布时间】: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


【解决方案1】:

reverse 反转列表就地,参见the manual,而[::-1] 以相反的顺序给出一个新列表。

在调用p.reverse() 之后尝试print(p),你会看到不同。

【讨论】:

  • @M.Jones 如果您认为此答案有助于解决您的问题,请单击绿色复选标记将其标记为“已接受”。这将有助于社区将注意力集中在未回答的问题上。
猜你喜欢
  • 1970-01-01
  • 2022-10-01
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 2021-08-30
  • 1970-01-01
相关资源
最近更新 更多