Python无法将项目复制到列表

Python cannot copy item to list

我正在尝试将项目复制到列表中,但它总是仅添加链接。

这是我尝试的方法:

1:

1
2
3
list1 = []
list2 = [1]
list1.append(list2)

2.

1
2
3
list1 = []
list2 = [1]
list1 += [list2]

3.

1
2
3
list1 = []
list2 = [1]
list1 = list1 + [list2]

此后修改list2时,list1也会始终更改。

Python版本:sys.version_info(major = 2,minor = 7,micro = 3,releaselevel = \\'final \\',serial = 0)

如何在不附加引用的情况下附加到列表。


您想要list1.extend(list2)。有关更多信息,请参见文档:http://docs.python.org/2/tutorial/datastructures.html


答案取决于您期望的结果。

  • 如果您希望将整个列表作为单个元素追加,则需要使用list2[:]进行(浅)副本,例如:

    list1 += [list2[:]]

  • 另一方面,如果您想将list2的元素追加到list1,那么您正在寻找

    list1.extend(list2)


  • 这可能不是最好的方法,因为它会创建一个新列表,但它会起作用:

    1
    list1 = list1 + list2