【问题标题】:How do i unlink these lists? [duplicate]我如何取消链接这些列表? [复制]
【发布时间】:2021-12-29 18:00:01
【问题描述】:

我正在尝试创建一个包含其他三个列表的列表,但是这些列表是链接的,因此当我更改列表中的一个子列表时,它会更改所有列表。

我尝试使用 [:] ,我在创建它们时听说过取消链接列表,但在我的情况下这似乎不起作用,有什么建议吗?

matrix = [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]

list_of_matrixes = []

for _ in range(3):
    list_of_matrixes.append(matrix[:])

list_of_matrixes[0][0][0][0] = 1

for i in list_of_matrixes:
    print(i)

【问题讨论】:

    标签: python python-3.x list linked-list python-3.8


    【解决方案1】:

    切片[:]只拷贝一层,需要深拷贝

    import copy
    for _ in range(3):
        list_of_matrixes.append(copy.deepcopy(matrix))
    

    【讨论】:

      猜你喜欢
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      相关资源
      最近更新 更多