复制引用和连接列表

时间:2014-11-09 17:48:49

标签: python list reference concatenation

当我有多个对象并将它们放入列表时,该列表仅保存对象的引用。我需要列表本身的相同行为。

所以我想说:

list1 = [1,2,3]
list2 = [4,5,6]
...

我希望 allLists 像这样:

allLists = [list1, list2, ..., listn]

但Python始终这样做:

list1 = [1,2,3]
list2 = [4,5,6]
...
allLists = [1, 2, 3, 4, 5, 6, ...]

我尝试追加,插入,连接或只是使用+运算符,但Python总是将每个列表的内容数据复制到 allLists ,而不是复制 list1 到 listn ,只保存 allLists 中的引用。

是否可以在 allLists 中仅将 list1 的引用添加到 listn

3 个答案:

答案 0 :(得分:1)

你不能按照自己的方式做事。您需要制作一个新列表,然后单独附加您的列表

In [1]: super_list = []
In [2]: list1 = [1,2,3]
In [3]: list2 = [4,5,6]
In [4]: super_list.append(list1)
In [5]: super_list.append(list2)
In [6]: super_list
Out[6]: [[1, 2, 3], [4, 5, 6]]

答案 1 :(得分:1)

你有没有尝试过显而易见的事情:

>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> allLists = [list1, list2]
>>> allLists
[[1, 2, 3], [4, 5, 6]]

答案 2 :(得分:1)

你不能这样做,但你可以使用字典:

这是你尝试的:

>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> newlist=[list1,list2]
>>> newlist
[[1, 2, 3], [4, 5, 6]]

使用字典:

>>> dict={'list1' : [1,2,3],'list2' :[4,5,6]}
>>> dict.keys()
['list1', 'list2']
>>> dict['list1']
[1, 2, 3]