我正在为周三的Python决赛学习。 我对列表中的参考资料有一些问题。 我需要解释一下发生了什么事
我试着用谷歌搜索老师的笔记,但没有结果
如果我有以下python代码:
(甲)
a = [1,2]
b = [1,[2], 3]
c = [a] + [b]
b = 0
print(c)
但如果我说:
第二部分)
a = [1,2]
b = [1,[2], 3]
c = [a] + [b]
b[0] = -1
print(c)
(甲) c的输出=[[1,2],[1,2,3]]
为什么c不打印为[[1,2],[0]]
第二部分) c的输出将是=[[1,2],-1,2,3]]
在这种情况下,它似乎修改了对象c内部对b的引用,但在另一种情况下却没有修改
我必须为此画一个箭头图,所以对于引用发生了什么,以及为什么如果我通过索引改变b,它似乎会在c内部改变b,这真的很混乱,但是如果我改变b所指的,c仍然是指b的旧值,而不是新值
c = [a] + [b]
将使用变量a
和变量b
的值,这两个值都是列表b = 0
更改了b
的内容,使其忘记了之前持有的值(该值保持不变,只是不再被b
引用)b[0] = -1
不改变b
,它改变b
引用的值;由于当前c
中的列表也引用了该值,因此您将观察到c
中的更改我得到的最好建议是通过非常有效的Python可视化工具运行这两段代码:snippet 1vssnippet 2,并观察程序如何运行(按“可视化执行”按钮)
相关问题 更多 >
编程相关推荐