【问题标题】:How to join two lists in python?如何在python中加入两个列表?
【发布时间】:2016-02-25 23:09:34
【问题描述】:

我希望一个列表中有两个列表:

x = [1,2]
y = [3,4]

我需要他们变成这样:

z = [[1,2][3,4]]

但我不知道该怎么做。 非常感谢您的考虑和帮助。

【问题讨论】:

标签: python list join append


【解决方案1】:

创建一个包含前两个列表的新列表。

z = [x, y]

这将使z 的每个元素成为对原始列表的引用。如果您不希望这种情况发生,您可以执行以下操作。

from copy import copy
z = [copy(x), copy(y)]
print z

【讨论】:

  • 您刚刚创建了对 x 和 y 的引用,对其中任何一个的任何更改都意味着列表列表将会更改
  • @PadraicCunningham 感谢您指出这一点。我忽略了它。编辑了我的答案。
【解决方案2】:
x = [ 1, 2 ]
y = [ 2, 3 ]
z =[]
z.append(x)
z.append(y)
print z

output:
[[1, 2], [2, 3]]

【讨论】:

    【解决方案3】:

    这将起作用:

     >>> x = [1, 2]
     >>> y = [3, 4]
     >>> z = [x, y]
     >>> print("z = ", z)
     z =  [[1, 2], [3, 4]]
    

    【讨论】:

    • 除了z 包含对xy引用,而不是它们的实际。如果xy 发生更改,z 也会更改,这可能不是程序员的本意。这会导致难以发现的错误。
    【解决方案4】:

    如果您不想引用原始列表对象:

    z = [x[:], y[:]]
    

    【讨论】:

    • 虽然这不是明确和可读的,但这种方法真的很有趣!
    • @ssundarraj 除了以更简洁的方式外,它的作用与您的答案相同。在我看来,这和你的一样清晰易读,没有额外的导入和代码行。
    • @MattDMo 同意!它非常简洁。虽然它不太明确。这就是我要传达的全部内容。我真的很喜欢这种方法。我可能会自己使用它。
    猜你喜欢
    • 2023-03-10
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 2021-04-25
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多