列表用‘=’赋值不能创建两个位置列表(都是共用一个位置),可用列表.copy,也可list3 = list1[:],创建两个不同位置列表。
例如下面案例,我要获得list1中与list2没有包含关系的元素列表。答案是都具有包含关系,符合要求的项为空,第一个展示的就是造成这种bug的是浅拷贝导致,在执行第一个for循环时,删除list3并且删除了list1的元素。用上copy或[:]就会避免操作到原数据。remove在应用时一定注意其操作的真实对象都有谁。
图一
图二