2024-03-29 10:19:06 发布
网友
a=[1234] #b=[] b.append(a) print(b) output: [[1234], [1234]] a=[1234] b=[] b.append(a) #print(b) #output:[[1234]]
我无法理解上面的代码,当我将一个空列表分配给b时,它正在打印[[1234]],但如果我将其附加到b时,它将打印出[[1234],[1234]]
这里发生了什么事
如果您使用jupyter-notebook,您可能会得到这种行为,我假设您运行相同的单元格2次,一次使用b=[]取消注释,一次使用#b=[],从一次运行到另一次运行jupyter,变量存储在内存中,因此对于第二次运行,您的b已经等于[[1234]],这是您的第二次运行的等效代码jupyter cell:
jupyter-notebook
b=[]
#b=[]
jupyter
b
[[1234]]
jupyter cell
b = [[1234]] # aready in memory a=[1234] #b=[] b.append(a) print(b)
输出:
[[1234], [1234]]
您可能已经在某个地方定义了b。第二次设置b=[]时,b被清除。不能对未定义的数组调用append。如果仅运行以下代码:
a=[1234] b.append(a) print(b)
当它通过解释器时,应该会出现以下错误
NameError: name 'b' is not defined
如果您使用
jupyter-notebook
,您可能会得到这种行为,我假设您运行相同的单元格2次,一次使用b=[]
取消注释,一次使用#b=[]
,从一次运行到另一次运行jupyter
,变量存储在内存中,因此对于第二次运行,您的b
已经等于[[1234]]
,这是您的第二次运行的等效代码jupyter cell
:输出:
您可能已经在某个地方定义了b。第二次设置b=[]时,b被清除。不能对未定义的数组调用append。如果仅运行以下代码:
当它通过解释器时,应该会出现以下错误
相关问题 更多 >
编程相关推荐