为什么在我的程序的第7行中删除'A=[13,20,7,12,10,2,5,1,0,18]“会改变打印结果(D)?

发布时间:2025-07-22 09:43

在Word中,Ctrl+D删除选中的文本,Ctrl+A全选文档内容。 #生活技巧# #数码产品使用技巧# #办公软件快捷键#

文章/答案/技术大牛

发布

社区首页 >问答首页 >为什么在我的程序的第7行中删除"A=[13,20,7,12,10,2,5,1,0,18]“会改变打印结果(D)?

Stack Overflow用户

提问于 2020-02-17 21:48:00

回答 1查看 42关注 0票数 0

在我的程序中保留或删除第7行应该不会改变输出,因为我只会将相同的值赋给"A“两次。但是删除它会改变输出。以下是代码

代码语言:javascript

运行

复制

def C(A): A[1]=A[8]+A[4] return A D=[] A=[13,20,7,12,10,2,5,1,0,18] Z=A A=[13,20,7,12,10,2,5,1,0,18] #When I delete this line, print(D) in the end gives different value . A[9]=A[3]-A[0] if A[9]>0: A[2] = A[9] * A[1] else: C(A) if A[1]>A[6]: A[2]=A[9]*A[1] else: while 2>1: C(A) if A[1]>A[6]: A[2]=A[9]*A[1] break for x in range(0,len(A)): if (Z[x] == A[x]): D.append(A[x]) print(D)

如果它与浅层内存有关,为什么即使我删除了第3行,此代码也会给出相同的输出?

代码语言:javascript

运行

复制

A=[13,20,7,12,10,2,5,1,0,18] Z=A A=[1,1,1,1,1,1,1,1,1,1] print(Z)

EN

Stack Overflow用户

发布于 2020-02-17 21:56:49

这将通过赋值显示每个变量的ID。

代码语言:javascript

运行

复制

>>> A = [1,2,3] >>> id(A) 19812552 >>> Z=A >>> id(Z) 19812552 >>> id(A) 19812552 >>> A = [1,2,3] >>> id(A) 19917160 >>> id(Z) 19812552

正如您所看到的,当您将A重新分配给以前的地址时,它会改变地址,这意味着它不再是Z的浅层副本,而是一个全新的列表。

对于问题的第二部分,让我们取两个地址(X和Y)和两个变量(A和B):

代码语言:javascript

运行

复制

A = [1,2,3] ( A now points to address X) B = A (Z points to the same address as A, Z points to X) A = [1,1,1] (A is now stored in a new address, address Y, B/X unchanged)

第二行不会更改变量B,因此如果删除第3行,输出也不会更改。

票数 1

EN

页面原文内容由

Stack Overflow

提供。腾讯云小微IT领域专用引擎提供翻译支持

原文链接:

https://stackoverflow.com/questions/60263884

复制

相关文章

相似问题

网址:为什么在我的程序的第7行中删除'A=[13,20,7,12,10,2,5,1,0,18]“会改变打印结果(D)? https://www.yuejiaxmz.com/news/view/1186050

相关内容

图书重印时,不可以改变( )。A.开本B.书号C.扉页D.版式E.封而
智能设备主要包括那些设备() A: 智能终端 B: 产品领取机 C: 移动助手 D: 智能打印机 E: 回单打印机
Win11卸载软件快捷键是什么?如何快速删除程序?
win10怎么删除桌面上的激活水印 删除桌面上的激活水印方法【详解】
XP系统彻底删除打印机设备的方法
如何删除打印机任务?三种快速删除打印机任务的方法
写出下面程序的运行结果 。 #include main( ) { int a=1
python3解释器执行long(10)的结果为
win10怎么删除桌面上的激活水印?
在关系数据库中,存放在数据库中的数据的逻辑结构以什么为主?在关系数据库中,存放在数据库中的数据的逻辑结构以()为主。A.二叉树B.多叉树C.哈希表D.二维表

随便看看