我在Python中有一些代码,它应该以列表的形式将所有根目录返回到二叉树中的叶子路径(例如["1-> 2-> 5","1-> 3"]).原始问题来自leetcode.
我需要帮助找出我的代码和/或替代解决方案的问题(最好是Python).对于我上面给出的示例,我的代码返回null,而它实际上应该打印我给出的列表.当你第一次看到这个问题时,我也很感激你如何解决这个问题.
这是我的代码:
def binaryTreePaths(self, root):
list1 = []
if (root == None):
return []
if (root.left == None and root.right == None):
return list1.append(str(root.val) + "->")
if (root.left != None):
list1.append(self.binaryTreePaths(root.left))
if (root.right != None):
list1.append(self.binaryTreePaths(root.right))
Run Code Online (Sandbox Code Playgroud) 我知道我可以使用“ append()”将元素添加到列表中,但是为什么赋值返回None?
>>> a=[1,2,3]
>>> a.append(4)
>>> print a
[1, 2, 3, 4]
>>> a=a.append(5)
>>> print a
None
>>>
Run Code Online (Sandbox Code Playgroud) 我有一个列表,其中包含int和str类型的元素.我需要将int元素复制到另一个列表.我尝试了一个无效的列表理解.我的等效循环正在工作.
input = ['a',1,'b','c',2,3,'c','d']
output = []
[output.append(a) for a in input if type(a) == int]
Run Code Online (Sandbox Code Playgroud)
[无,无,无]
循环中的逻辑相同.
output = []
for a in input:
if type(a) == int:
output.append(a)
print(output)
Run Code Online (Sandbox Code Playgroud)
[1,2,3,]
我能知道是什么造就了它.
我正在尝试对 Numpy 数组使用列表理解,然后在后面附加另一个元素。然后我注意到一些奇怪的事情。
a = [i for i in machine]
a.append("All")
print(a)
Run Code Online (Sandbox Code Playgroud)
这将返回 [251, 360, 661, 662, 852, '全部']
尽管
a = [i for i in machine].append("All")
Run Code Online (Sandbox Code Playgroud)
无返回值
为什么这会返回 None 对象?有没有办法在一行中完成此操作?
这是我很长一段时间写的最短的例子之一
我创建并更新了一个元组3
In [65]: arf=(0,1,[1,2,3])
In [66]: arf=(arf[0],arf[1], arf[2] )
In [67]: arf
Out[67]: (0, 1, [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
所以重新分配工作.
现在我尝试改变它的内容.
In [69]: arf=(arf[0],arf[1], [2] )
In [70]: arf
Out[70]: (0, 1, [2])
In [71]: arf=(arf[0],arf[1], arf[2].append(3) )
In [72]: arf
Out[72]: (0, 1, None)
Run Code Online (Sandbox Code Playgroud)
我回来了吗??? 嘿,是什么给出的?对不起,我是一个蟒蛇菜鸟.