2

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

这是我尝试过的:

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)

如何在不附加参考的情况下附加到列表。

4

3 回答 3

6

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

于 2012-11-21T17:04:08.443 回答
4

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

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

    list1 += [list2[:]]

  2. 另一方面,如果您希望将list2元素附加到list1,那么您正在寻找

    list1.extend(list2)

于 2012-11-21T17:04:11.747 回答
0

这可能不是最好的方法,因为它会创建一个新列表,但它确实有效:

list1 = list1 + list2
于 2012-11-21T17:15:15.133 回答