+ =和.append()有什么区别? [重复]

问题描述 投票:-1回答:1

我试图执行BST的有序遍历而不进行递归。

在特定的代码行,我得到了错误,代码:

最初我定义为:

out=[]

elif stack!=[]:
current=stack.pop()
out+=(current.val)
current=current.right

Error: 
Traceback (most recent call last):
  File "main.py", line 224, in 
    Z = obj.inorderTraversal(A)
  File "/tmp/judge/solution.py", line 16, in inorderTraversal
    out+=(current.val)
TypeError: 'int' object is not iterable

然后我改变了out + =(current.val)到out.append(current.val),它起作用。

任何人都可以帮助我理解吗?

基本上,这两个语句的区别是什么?

python python-3.x binary-search-tree inorder
1个回答
0
投票

带有追加,您可以指定插入一个元素,而带有+ =则可以加入两个列表。有关更多详细信息,请参见https://docs.python.org/3/tutorial/datastructures.html

在这种情况下,您将+ =与int一起使用,正确的语法为out += [current.val]out.append(current.val)(可读性更高。)>

© www.soinside.com 2019 - 2024. All rights reserved.