3c.*_*3c. 4 python list append
我不太明白以下两个相似代码之间的区别:
def y(x):
temp=[]
def z(j):
temp.append(j)
z(1)
return temp
Run Code Online (Sandbox Code Playgroud)
调用y(2)返回[1]
def y(x):
temp=[]
def z(j):
temp+=[j]
z(1)
return temp
Run Code Online (Sandbox Code Playgroud)
调用y(2)返回UnboundLocalError: local variable 'temp' referenced before assignment.为什么+运算符会生成错误?谢谢
回答标题,+和"追加"之间的区别是:
[11, 22] + [33, 44,]
Run Code Online (Sandbox Code Playgroud)
会给你:
[11, 22, 33, 44]
Run Code Online (Sandbox Code Playgroud)
和.
b = [11, 22, 33]
b.append([44, 55, 66])
Run Code Online (Sandbox Code Playgroud)
会给你
[11, 22, 33 [44, 55, 66]]
Run Code Online (Sandbox Code Playgroud)
回答错误
这是因为当您对作用域中的变量进行赋值时,该变量将成为该作用域的局部变量,并在外部作用域中隐藏任何类似命名的变量
这里的问题temp+=[j]是等于temp = temp +[j].临时变量在分配之前在此处读取.这就是它给出这个问题的原因.这实际上包含在python FAQ中.
如需进一步阅读,请单击此处.:)
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |