PEP 270 – uniq Methode für Listenobjekte
- Autor:
- Jason Petrone <jp at demonseed.net>
- Status:
- Abgelehnt
- Typ:
- Standards Track
- Erstellt:
- 21-Aug-2001
- Python-Version:
- 2.2
- Post-History:
Inhaltsverzeichnis
Ankündigung
Dieser PEP wurde vom Autor zurückgezogen. Er schreibt:
Das Entfernen von doppelten Elementen aus einer Liste ist eine gängige Aufgabe, aber es gibt nur zwei Gründe, die ich dafür sehe, sie zu einer integrierten Funktion zu machen. Der erste ist, wenn sie viel schneller erledigt werden könnte, was hier nicht der Fall ist. Der zweite ist, wenn sie das Schreiben von Code erheblich erleichtert. Die Einführung vonsets.pyeliminiert diese Situation, da die Erstellung einer Sequenz ohne Duplikate nur eine Frage der Wahl einer anderen Datenstruktur ist: ein Set statt einer Liste.
Wie in PEP 218 beschrieben, werden Sets in die Standardbibliothek für Python 2.3 aufgenommen.
Zusammenfassung
Dieser PEP schlägt das Hinzufügen einer Methode zum Entfernen doppelter Elemente zum Listenobjekt vor.
Begründung
Das Entfernen von Duplikaten aus einer Liste ist eine gängige Aufgabe. Ich denke, sie ist nützlich und allgemein genug, um als Methode in Listenobjekten zu gehören. Sie hat auch Potenzial für schnellere Ausführung, wenn sie in C implementiert wird, insbesondere wenn eine Optimierung mittels Hashing oder Sortierung nicht verwendet werden kann.
In comp.lang.python gibt es viele, viele Posts [1], in denen nach dem besten Weg gefragt wird, diese Aufgabe zu erledigen. Es ist etwas knifflig, sie optimal zu implementieren, und es wäre gut, wenn man den Leuten die Mühe ersparen könnte, sie selbst herauszufinden.
Überlegungen
Tim Peters schlägt vor, zuerst zu versuchen, eine Hashtabelle zu verwenden, dann zu versuchen zu sortieren und schließlich auf Brute Force zurückzufallen [2]. Sollte uniq die Reihenfolge der Liste auf Kosten der Geschwindigkeit beibehalten?
Ist es 'uniq' oder 'unique' geschrieben?
Referenzimplementierung
Ich habe die Brute-Force-Version geschrieben. Sie besteht aus etwa 20 Zeilen Code in listobject.c. Das Hinzufügen von Unterstützung für Hash-Tabellen und sortierte Duplikaterkennung würde nur etwa eine weitere Stunde dauern.
Referenzen
Urheberrecht
Dieses Dokument wurde gemeinfrei erklärt.
Quelle: https://github.com/python/peps/blob/main/peps/pep-0270.rst
Zuletzt geändert: 2025-02-01 08:55:40 GMT