复制列表然后循环遍历第一个列表并扩展第二个列表导致问题:两个列表都得到扩展

时间:2018-03-15 15:47:13

标签: python-3.x

以下python 3代码导致将元组('bla',1.0)添加到list1和list2。为什么?他们没有指向记忆中的同一个地方。

#copy list1 to new list2:
for c in list1:
    list2.append(c)

#loop through list1 and extend list2
>>> for idxc, c in enumerate(list1):
...     for idxsc, sc in enumerate(c):
...             list2[idxc][idxsc].extend([tuple(('bla', 1.0))])

1 个答案:

答案 0 :(得分:1)

制作列表及其所有内容的真实副本的方法是在嵌套列表上运行,方法是制作一份深层副本:

import copy

list2 = copy.deepcopy(list1)