为什么在我的程序的第7行中删除'A=[13,20,7,12,10,2,5,1,0,18]“会改变打印结果(D)?
在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.二维表