Python将列表添加到另一个列表作为单个条目

时间:2017-05-09 23:14:40

标签: python list

这里的目标是得到一个列表`[1,2,3,4],并按原样添加到另一个列表中;所以我可以列出一份清单

masterlist = [[1,2,3,4],[5,6,7,8],.....]

但我无法做到这一点。

我确实尝试了append,它有效,但是它复制了我追加的那个列表的引用,它没有复制值,所以如果我清空我添加的列表,我最终会清除整个事情

list1 = [1,2,3,4]

masterlist.append(list1)

del list1[:]
list1 = [5,6,7,8]

masterlist.append(list1)

这个结果在主列表中有2个列表,但它们基本相同,所以它看起来像这样:

[[5,6,7,8],[5,6,7,8]]

虽然我想要[[1,2,3,4],[5,6,7,8]]

我确实尝试使用extend,但这会添加当前列表的每个元素,作为另一个列表中的单个条目,所以我最终会使用

[1,2,3,4,5,6,7,8]

如何最终添加列表,列表的内容本身,而不是引用?

编辑:这不是与深拷贝或浅拷贝有关的问题;另一个相关问题似乎相似,但没有解决我的问题。我在这里看到一个完全适合我的解决方案

1 个答案:

答案 0 :(得分:2)

你可以这样做:

>>> masterlist = [[1,2,3,4],[5,6,7,8]]
>>> list1 = [1,2,3,4]
>>> masterlist[len(masterlist):]=[list1[:]]
>>> del list1
>>> masterlist
[[1, 2, 3, 4], [5, 6, 7, 8], [1, 2, 3, 4]]

或者,

masterlist.append(list1[:])

或者,仅限Python3:

masterlist.append(list1.copy())