Python无法将项目复制到列表中

时间:2012-11-21 17:02:21

标签: python list append

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

这就是我的尝试:

1:

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

2

list1 = []
list2 = [1]
list1 += [list2]

3

list1 = []
list2 = [1]
list1 = list1 + [list2]

之后我修改list2时,list1也会一直改变。

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

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

3 个答案:

答案 0 :(得分:6)

你想要list1.extend(list2)。有关详细信息,请参阅文档:http://docs.python.org/2/tutorial/datastructures.html

答案 1 :(得分:4)

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

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

    list1 += [list2[:]]

  2. 另一方面,如果您希望将list2元素追加到list1,那么您&#39 ;寻找

    list1.extend(list2)

答案 2 :(得分:0)

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

list1 = list1 + list2