在Python中,列表去重主要有5种核心方法:集合转换法(最快但不保序)、字典键值法(Python 3.7+保序)、列表推导式(灵活保序)、循环遍历法(直观保序)以及Pandas库(适合大数据)。选择方法时需权衡速度、顺序保留和依赖库。
-
集合转换法:通过
list(set(original_list))
实现,利用集合自动去重的特性,时间复杂度,但会打乱原始顺序。例如,[1,2,2,3]
去重后可能变为[1,2,3]
或[3,2,1]
。 -
字典键值法:使用
list(dict.fromkeys(original_list))
,基于Python 3.7+字典的有序性,既能去重又能保留顺序。例如,['a','b','a']
去重结果为['a','b']
。 -
列表推导式:结合辅助集合,如
[x for x in original_list if not (x in seen or seen.add(x))]
,代码稍复杂但保序且无需依赖版本。 -
循环遍历法:通过
for
循环逐个检查并追加到新列表,逻辑清晰但效率较低(),适合小规模数据。例如:python复制
unique = [] for item in [1,2,2,3]: if item not in unique: unique.append(item)
-
Pandas库:调用
pd.Series(original_list).drop_duplicates().tolist()
,适合处理海量数据,但需安装第三方库。
总结:根据需求选择方法——求速度用集合,保序用字典或推导式,大数据用Pandas。注意代码可读性与场景适配性,避免过度依赖外部库。