PEP 270, uniq method for list objects, Jason Petrone
This commit is contained in:
parent
a634156bd1
commit
61cbcdd8d3
|
@ -0,0 +1,66 @@
|
|||
PEP: 270
|
||||
Title: uniq method for list objects
|
||||
Version: $Revision$
|
||||
Last-Modified: $Date$
|
||||
Author: jp@demonseed.net (Jason Petrone)
|
||||
Status: Draft
|
||||
Type: Standards Track
|
||||
Created: 21-Aug-2001
|
||||
Python-Version: 2.2
|
||||
Post-History:
|
||||
|
||||
|
||||
Abstract
|
||||
|
||||
This PEP proposes adding a method for removing duplicate elements to
|
||||
the list object.
|
||||
|
||||
|
||||
Rationale
|
||||
|
||||
Removing duplicates from a list is a common task. I think it is
|
||||
useful and general enough to belong as a method in list objects.
|
||||
It also has potential for faster execution when implemented in C,
|
||||
especially if optimization using hashing or sorted cannot be used.
|
||||
|
||||
On comp.lang.python there are many, many, posts[1] asking about
|
||||
the best way to do this task. Its a little tricky to implement
|
||||
optimally and it would be nice to save people the trouble of
|
||||
figuring it out themselves.
|
||||
|
||||
|
||||
Considerations
|
||||
|
||||
Tim Peters suggests trying to use a hash table, then trying to
|
||||
sort, and finally falling back on brute force[2]. Should uniq
|
||||
maintain list order at the expense of speed?
|
||||
|
||||
Is it spelled 'uniq' or 'unique'?
|
||||
|
||||
|
||||
Reference Implementation
|
||||
|
||||
I've written the brute force version. Its about 20 lines of code
|
||||
in listobject.c. Adding support for hash table and sorted
|
||||
duplicate removal would only take another hour or so.
|
||||
|
||||
|
||||
References
|
||||
|
||||
[1] http://groups.google.com/groups?as_q=duplicates&as_ugroup=comp.lang.python
|
||||
|
||||
[2] Tim Peters unique() entry in the Python cookbook:
|
||||
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52560/index_txt
|
||||
|
||||
|
||||
Copyright
|
||||
|
||||
This document has been placed in the public domain.
|
||||
|
||||
|
||||
|
||||
Local Variables:
|
||||
mode: indented-text
|
||||
indent-tabs-mode: nil
|
||||
fill-column: 70
|
||||
End:
|
Loading…
Reference in New Issue