【发布时间】:2021-06-25 12:37:23
【问题描述】:
segp2=[['13s'],['3c','6h','8h','9h','10c','11h'],['4c','4h','5c','5h','7c','7s'],[],[],[],['4h','5h','6h','8h','9h','11h'],[],[]]
copyseg=list(segp2)
copy=list(copyseg[6]);x=0;y=0
for i in copyseg[1]:
if i in copyseg[6]:copyseg[1].remove(i);copy.remove(i);x+=1
if x==5:break
for i in copyseg[2]:
if i in copyseg[6]:copyseg[2].remove(i);copy.remove(i);x+=1
if x==5:break
for i in copyseg[3]:
if i in copyseg[6]:copyseg[3].remove(i);copy.remove(i);x+=1
if x==5:break
print(segp2)
print(copyseg)
这两个在某种程度上是一样的,即使 segp2 实际上没有被触及。根据我的经验,使用 'copyseg=list(segp2)' 会生成不受新代码影响的列表副本。然而不知何故,我在“copyseg”列表中所做的一切都被复制到了“segp2”列表中。我已经尝试了所有我能想到的方法,但不知道为什么会这样。
【问题讨论】:
-
您正在制作列表列表的浅副本。
-
所以我应该遍历列表并复制所有内容?
-
抱歉,感谢您对深层复制工作的快速响应(显然)
标签: python-3.x