Python:为什么用b = list(a)复制列表后id会改变

时间:2019-04-28 20:39:17

标签: python

假设以下代码:

a = [1,2,3]
b = list(a)
print(id(b) == id(a))

这产生为:

False

我希望复制后两个列表的ID相同。为什么 b a 没有相同的ID?

2 个答案:

答案 0 :(得分:4)

list创建该参数的新副本。它期望一个可迭代对象,并将所有可迭代对象的元素消耗到一个 new 列表中。

如果您想要一个附加的引用/名称来引用相同的列表,只需使用赋值而不调用list

a = [1,2,3]
b = a
print(id(b) == id(a))  # True

答案 1 :(得分:0)

您可能还会发现此帮助:

Python variables - behind the scenes

它显示了Python如何管理变量。