【问题标题】:Python cannot copy item to listPython无法将项目复制到列表
【发布时间】:2012-11-10 00:03:19
【问题描述】:

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

这是我尝试过的:

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)

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

【问题讨论】:

  • 您应该考虑不使用l1l2 作为变量名。 l 看起来太像 1。当我阅读您的帖子时,这实际上让我感到震惊

标签: python list append


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

      list1 += [list2[:]]

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

      list1.extend(list2)

    【讨论】:

    • +1 以获得有效的答案。不过list.extend 快很多
    【解决方案3】:

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

    list1 = list1 + list2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      相关资源
      最近更新 更多