Python3被列表去重搞迷糊了,求助
以下代码为2中列表去重,备用列表都一样,为啥只是先后遍历的顺序不同结果也不同,导致这种差异的原理是什么?方法一:结果为
a =
b =
for x in b:
if x in a:
a.remove(x)
print(a)
方法二:结果为
a =
b =
for x in a:
if x in b:
a.remove(x)
print(a) 方法2:
循环1,指向0位,即数值0,不在b,继续到下一个;
循环2,指向1位,即数值1,不在b,继续到下一个;
循环3,指向2位,即数值2,在b,删除掉2,注意此时数值3在位置2;继续到下一个;
循环4,指向3位,即数值4,把数值3就跳过去了。
本帖最后由 jackz007 于 2019-11-27 14:46 编辑
方法二在循环中修改控制循环的列表 a,所以,必须用列表 a 的副本来控制循环:
a =
b =
for x in a[:]: # 用列表 a 的副本控制循环
if x in b:
a.remove(x)
print(a)
这个代码最后输出的信息是:,与 方法一相同
页:
[1]