Für viele Zwecke reicht der einfache Aufruf von sortiert aus. Zum Beispiel
>>> s = set([0, 1, 2, 99, 4, 40, 3, 20, 24, 100, 60])
>>> sorted(s)
[0, 1, 2, 3, 4, 20, 24, 40, 60, 99, 100]
Wenn Sie diese Funktion wiederholt verwenden, entsteht durch den Aufruf der sortierten Funktion ein Overhead, so dass Sie die resultierende Liste speichern sollten, sobald Sie die Menge geändert haben. Wenn Sie eindeutige Elemente und sortiert pflegen müssen, stimme ich mit dem Vorschlag der Verwendung von OrderedDict von Sammlungen mit einem beliebigen Wert wie None.
26 Stimmen
Was ist mit dem Converse, einer Tasche voller Dinge? (ungeordnet und nicht einmalig)
28 Stimmen
@wim
collections.Counter
ist die Tasche von Python.4 Stimmen
Was passiert, wenn etwas zweimal hinzugefügt wird? Wie sollte die Position lauten?
7 Stimmen
@McKay - wenn es dem Verhalten von collections.OrderDict folgen würde, wäre es immer noch an der Stelle des ursprünglichen Zusatzes
15 Stimmen
Achtung: einige Antworten sind veraltet. Z.B.,
dict
ist jetzt nach Einfügung geordnet (garantiert seit Python 3.7)0 Stimmen
^^+1 Siehe Antwort unten: stackoverflow.com/a/53657523/3559330 . Dicts erhalten die Reihenfolge in Python 3.7+. Ansonsten verwenden Sie OrderedDict.
1 Stimmen
From sortedcontainers import Sorted*
0 Stimmen
pypi.org/project/ordered-set
0 Stimmen
Wenn Sie speziell eine geordnete Menge benötigen, um eine Liste zu deduplizieren, lesen Sie bitte stackoverflow.com/questions/480214 .