我将尝试澄清:
例如,我制作了一个在本地创建列表并返回列表的函数。Python如何创建在函数体外部存在的返回列表?它是否使用“ deepcopy”(或类似的东西)?
In [50]: def create_list():
...: sublist1 = [1,2,3]
...: sublist2 = [4,5,6]
...: list_of_lists=[sublist1,sublist1,sublist2]
...: return list_of_lists
...:
In [51]: l=create_list()
In [52]: l
Out[52]: [[1, 2, 3], [1, 2, 3], [4, 5, 6]]
In [53]: l[0].append(4)
In [54]: l
Out[54]: [[1, 2, 3, 4], [1, 2, 3, 4], [4, 5, 6]]
Run Code Online (Sandbox Code Playgroud)
在这里,返回的列表l仍然包含子列表。并且l[0]并且l[1]仍然引用相同的子列表(这是正常的Python行为)。因此,复制了列表及其结构。
如果我再打一次电话create_list():
In [55]: l2=create_list()
In [56]: l2
Out[56]: [[1, 2, 3], [1, 2, 3], [4, 5, …Run Code Online (Sandbox Code Playgroud)