a = [1,2,3] b = (x for x in a if a.count(x)>0) a = [0,2,0] print(list(b))
结果是
[2]
原因是什么?
调用b的时候a的值已经变了,第二行只是一个生成器对象,只有在使用时候才会执行