无法理解此代码产生此输出的原因

2024-04-27 20:25:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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]]a = [-5,34,45,[88,54]]。 这个输出是如何来的,我的意思是a[3][0]=88b中如何得到改变而a[1]=34没有


Tags: 代码listprint
1条回答
网友
1楼 · 发布于 2024-04-27 20:25:19

答案很简单,您已经从列表(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])

相关问题 更多 >