集合去重更快因其哈希实现,时间复杂度O(1);列表推导式查重为O(n²)较慢;需保序时推荐dict.fromkeys(),兼具性能与顺序。

在 Python 中,用集合(set)和列表推导式去重,集合去重更快。原因在于数据结构和时间复杂度的差异。
集合是哈希实现的,插入和查找平均时间复杂度为 O(1)。将列表转为集合会自动去除重复元素:
my_list = [1, 2, 2, 3, 4, 4, 5]这种方法只遍历一次原列表,整体时间复杂度接近 O(n),效率高。
如果用列表推导式配合条件判断去重,比如维护一个已见元素的列表:
立即学习“Python免费学习笔记(深入)”;
seen = []虽然能保持原始顺序,但 x not in seen 是对列表的线性查找,每次操作耗时 O(k),整体变成 O(n²),数据量大时明显变慢。
如果需要保持顺序又追求性能,推荐使用 dict.fromkeys():
字典从 Python 3.7 起保证插入顺序,且键的查找为 O(1),速度接近集合,还能保留元素首次出现的顺序。
基本上就这些:单纯去重选 set,要保序用 dict.fromkeys(),避免用列表推导式做重复检查。不复杂但容易忽略效率差别。
以上就是python集合和列表推导式哪种方法去重快的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号