data1=[1,2,3,4]
data2 = data1
data3=[[1,2],[3,4]]
for m in range(0,len(data1)):
for n in range(0,len(data3)):
if data3[n][0] == data1[m]:
data2.remove(data1[m])
else:
continue
慕仙1683277
浏览 2416回答 2
2回答
孤独的小猪
你这个报错是因为data2看似是复制了data1的数据,但其实data1和data2指向的是同一个内存地址,当data2发生改变的时候,data1其实也发生了变化。你可以你用 data2=data[:],这样data1和data2指向不同的内存地址。当一个发生改变,另一个不会发生改变。所以正确代码如下:data1=[1,2,3,4]
data2 = data1[:]
data3=[[1,2],[3,4]]
for m in range(0,len(data1)):
for n in range(0,len(data3)):
if data3[n][0] == data1[m]:
data2.remove(data1[m])
else:
continue