首页 > 解决方案 > 无法理解为什么此代码会产生此输出

问题描述

a=[-5,29,45,[67,54]]
b=list(a)
a[3][0]=88
a[1]=34
print("b = ",b)
print("a = ",a)

当我运行这个 python 代码时,我得到的输出为b = [-5, 29, 45, [88, 54]]and a = [-5,34,45,[88,54]]。这个输出是怎么来的,我的意思是如何a[3][0]=88改变,ba[1]=34不是?

标签: python

解决方案


答案很简单,你已经从 list(a) 创建了一个列表,这样就创建了一个全新的数组。但是列表中的列表对于 a 和 b 是相同的。

您可以通过打印 id(a)、id(b)、id(a[-1]) 和 id(b[-1) 来检查它

a=[-5,29,45,[67,54]]
b=list(a)
a[3][0]=88
a[1]=34
print("b = ",b)
print(“a = “,a)
print(“address of a”,id(a))
print(“address of b”,id(b))
print(“address of a[-1]”, id(a[-1])
print(“address of b[-1]”, id(b[-1])

推荐阅读