Following system colour scheme - Python 增强提案 Selected dark colour scheme - Python 增强提案 Selected light colour scheme - Python 增强提案

Python 增强提案

PEP 270 – 列表对象的 uniq 方法

作者:
Jason Petrone <jp at demonseed.net>
状态:
已拒绝
类型:
标准跟踪
创建日期:
2001年8月21日
Python 版本:
2.2
发布历史:


目录

注意

该PEP已被作者撤回。他写道:

从列表中删除重复元素是一个常见的任务,但我认为将其内置到语言中的原因只有两个。第一个是如果它能做得更快,但这并非如此。第二个是如果它能显著简化代码编写。 sets.py 的引入消除了这种情况,因为创建一个没有重复项的序列只是选择不同数据结构的问题:选择集合而不是列表。

PEP 218 所述,集合正在添加到 Python 2.3 的标准库中。

摘要

此PEP提议为列表对象添加一个删除重复元素的方法。

基本原理

从列表中删除重复项是一个常见的任务。我认为它足够有用和通用,可以作为列表对象中的一个方法。当用 C 实现时,它也有可能实现更快的执行,特别是如果不能使用哈希或排序优化的话。

在 comp.lang.python 上,有许多许多帖子 [1] 询问完成此任务的最佳方法。最优实现有点棘手,很高兴能省去人们自己琢磨的麻烦。

考虑

Tim Peters 建议尝试使用哈希表,然后尝试排序,最后回退到暴力方法 [2]。uniq 是否应该以牺牲速度为代价来保持列表顺序?

是拼作“uniq”还是“unique”?

参考实现

我写了暴力版本。在 listobject.c 中大约有 20 行代码。添加对哈希表和排序去重功能的支持只需再花一个小时左右。

参考资料


来源:https://github.com/python/peps/blob/main/peps/pep-0270.rst

最后修改:2025-02-01 08:55:40 GMT