当我有多个对象并将它们放入列表时,该列表仅保存对象的引用。我需要列表本身的相同行为。
所以我想说:
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 ?
答案 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]