【问题标题】:Please explain why is the output of given python code is [1,[-1]] and not [1,[2]]?请解释为什么给定 python 代码的输出是 [1,[-1]] 而不是 [1,[2]]?
【发布时间】:2022-06-27 15:58:44
【问题描述】:
x=[1,[2]]
y=list(x)
x[0]=-1
x[1][0] = -1
print(y)

我认为答案是 [1,[2]],因为更改是在声明变量 y 之后进行的,但我得到的输出是 [1,[-1]]。 请说明原因。

【问题讨论】:

  • Python 中的列表是可变的,因此您正在更改列表
  • @nonDucor - list(x) 复制了x;虽然是一个浅的副本。

标签: python list


【解决方案1】:

当你确定 y 时,你并没有创建一个新列表,你指向的是与 x 相同的对象。因此,当您更新 x 时,y 现在指向 x 的“新”版本

【讨论】:

    【解决方案2】:

    您正在打印“y”列表而不是“x”列表。如果您在这行代码之后对“x”列表进行更改:y=list(x) 现在将影响“y”列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 2021-07-04
      • 2013-01-09
      • 2021-12-15
      • 2011-05-01
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多