【问题标题】:why is a = [1,2,3] and a[:] not the same [duplicate]为什么 a = [1,2,3] 和 a[:] 不一样[重复]
【发布时间】:2020-03-01 01:36:35
【问题描述】:

我有下面的代码

a = [1,2,3]
b = a
a is b #shows True

b = a[:]
a is b #shows False
a == b # shows True

我认为 [1,2,3] 和 a[:] 的值将具有相同的 id 并且它们是完全相同的对象。 将 a[:] 分配给 b 时究竟会发生什么? 对不起,如果这个问题之前已经被问过,找不到完美的答案

【问题讨论】:

标签: python python-3.x list


【解决方案1】:

a[:] 是列表的浅表副本(作为切片)。它具有相同的数值,但它不是原始列表。 == 检查值,“is”是值,值的“身份”。

【讨论】:

  • 由于您似乎还没有参加过巡演,所以我会提示您:在您检查它是否重复之前,请不要回答这样的简单问题。如果它还没有被回答,那就去吧,但如果它已经标记它被关闭。
  • @TankorSmash 我知道,这就是为什么我留下评论并且没有否决/标记它。虽然我看到有人这样做。嗯嗯。
  • 谢谢。 “浅拷贝”这个词帮助我理解了差异背后的原因。
猜你喜欢
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
  • 2013-06-08
相关资源
最近更新 更多