基于集合的解决方案不保留项目的顺序.以下内容将按顺序保留项目并删除除第一次出现之外的所有项目,使用辅助设置来跟踪已经看到的项目.
seen = set() a = [seen.add(item) or item for item in a if item not in seen]
如果要重用相同的列表对象,可以这样做:
seen = set() a[:] = (seen.add(item) or item for item in a if item not in seen)