我做了列表的副本,但是当我对副本进行更改时,原始列表仍然会更改。我不明白为什么

问题描述 投票:2回答:1
l = [[1, 2, 3], [1, 2, 3, 5], [5, 6, 8]]
p = l.copy()
for indx, value in enumerate(p):
    del value[0]
print(l)
print(p)

输出:[[2,3],[2、3、5],[6、8]][[2,3],[2,3,5],[6,8]]

python list for-loop copy mutable
1个回答
1
投票

您要使用.copy复制参考,请使用.deepcopy进行有价复制。

l = [[1, 2, 3], [1, 2, 3, 5], [5, 6, 8]] 
p = l.deepcopy() 
for indx, value in enumerate(p): 
    del value[0] 
print(l) 
print(p)
© www.soinside.com 2019 - 2024. All rights reserved.