Python,将列表附加到另一个列表

时间:2016-05-13 12:27:01

标签: list python-2.7

我需要将列表附加到2D列表,以便我可以编辑添加的列表。我有这样的事情:

n = 3
a = [
    ['a', 2, 3],
    ['b', 5, 6],
    ['c', 8, 9]
]
b = [None for _ in range(n)]    # [None] * n
print b
a.append(b)
a[3][0] = 'e'
print a
a.append(b)
a[4][0] = 'f'
print a

我得到的结果是:

[None, None, None]
[['a', 2, 3], ['b', 5, 6], ['c', 8, 9], ['e', None, None]]
[['a', 2, 3], ['b', 5, 6], ['c', 8, 9], ['f', None, None], ['f', None, None]]  

第4行中的e更改为f,我不想要。使用[None] * 3我得到相同的结果。我该如何防止这种情况发生?我检查了how to create a fix size list in pythonpython empty list trick,但它无法正常工作。

1 个答案:

答案 0 :(得分:4)

b“指向”同一个python对象

您应该这样做,以创建b的新副本:

a.append(list(b))