在Python中克隆或复制列表有哪些选项?
在使用时new_list = my_list,每次都会对new_list更改进行任何修改my_list.为什么是这样?
为什么这两个操作(append()分别+)给出不同的结果?
>>> c = [1, 2, 3]
>>> c
[1, 2, 3]
>>> c += c
>>> c
[1, 2, 3, 1, 2, 3]
>>> c = [1, 2, 3]
>>> c.append(c)
>>> c
[1, 2, 3, [...]]
>>>
Run Code Online (Sandbox Code Playgroud)
在最后一种情况下,实际上存在无限递归.c[-1]并且c是一样的.为什么它与+操作不同?
是否有理由进行list.append评估?或者只是在成功发挥作用时返回0的C约定?
>>> u = []
>>> not u.append(6)
True
Run Code Online (Sandbox Code Playgroud) 我想创建一个简单的二叉树,如下图所示:

基本上是空的,但最后的值所以我创建了根列表:
root = [list(),list()]
Run Code Online (Sandbox Code Playgroud)
并制作了一个递归函数来填充所有内容:
def TF(nodeT,nodeF , i):
if i == 35 : return 'done'
TF(nodeT.append([]),nodeT.append([]) , i = i + 1) #append T , F in the true node
TF(nodeF.append([]),nodeT.append([]) , i = i + 1) #append T , F in the false node
Run Code Online (Sandbox Code Playgroud)
我的问题是简单的list.append(something)在python中返回"None"所以只要再次调用该函数(TF(None,None,1))None.append不存在.
我该如何解决这个问题?提前致谢.
如果你对如何提高效率或以其他方式提出任何建议(从来没有测试我的代码,所以我不知道它将如何做)
(我的最终目标是拥有一个真假地图和一个参数:"FTFTFFFTFTF"会显示字母"M"等...)