列表推导式和列表生成三段式的区别就在于此。列表推导式在生成列表的过程中无法对列表本身进行调用,比如你生成的是列表b,那么b在生成过程中是不可以再对其进行调用和比较的。
你这推了个寂寞😂
c = [x for x in a if x not in b]
这个里面的b你只是做了一个判断 而已并没有添加到b里面去
应该这样
a = [1,2,1]
b = []
for i in a:
if i not in b:
b.append(i)
print(b)
# 或者
a = [1,2,1]
b = []
[b.append(x) for x in a if x not in b]
print(b)
不知道你这个问题是否已经解决, 如果还没有解决的话: