【问题标题】:Appending a list to itself in Python在 Python 中将列表附加到自身
【发布时间】:2011-10-11 05:38:07
【问题描述】:

我想给自己附加一个列表,我认为这会起作用:

x = [1,2]
y = x.extend(x)
print y

我想找回[1,2,1,2],但我得到的只是内置的None。我究竟做错了什么?我正在使用 Python v2.6

【问题讨论】:

    标签: python list append


    【解决方案1】:

    x.extend(x) 不返回新副本,它会修改列表本身。

    只需打印x

    你也可以选择x + x

    【讨论】:

      【解决方案2】:

      x.extend(x) 就地修改x

      如果您想要一个新的、不同的列表,请使用y = x + x

      【讨论】:

        【解决方案3】:

        或者只是:

        x = [1,2]
        y = x * 2
        print y
        

        【讨论】:

        • 您正在创建[x, x],如果x 的一个元素发生变化,y 的另一个索引也会发生变化:stackoverflow.com/questions/240178/…
        • @Schorsch 对于[x] * 2 是这样,它等价于[x] + [x]。但是,x * 2 等效于 x + x,在这种情况下会创建一个“浅”值列表。
        【解决方案4】:

        x.extend(x) 将就地扩展 x。

        >>> print x
        
        [1, 2, 1, 2]
        

        【讨论】:

          【解决方案5】:

          如果您想要列表的新副本,请尝试:

          x = [1,2]
          y = x + x
          print y # prints [1,2,1,2]
          

          不同之处在于extend“就地”修改了列表,这意味着即使修改了列表,它也会始终返回None

          【讨论】:

            猜你喜欢
            • 2020-08-06
            • 1970-01-01
            • 1970-01-01
            • 2021-11-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多