您将放在if最后:[y for y in a if y not in b]列表解析的编写顺序与其嵌套的完整指定副本的书写顺序相同,实质上,以上声明翻译为:outputlist = []for y in a: if y not in b: outputlist.append(y)您的版本尝试这样做:outputlist = []if y not in b: for y in a: outputlist.append(y)但是列表理解必须至少从一个外部循环开始。