[Python-de] Liste uniquify

Martin v. Loewis martin at v.loewis.de
So Nov 20 22:50:25 CET 2011


> erhalte ich reproduzierbar das erste Ergebnis, obwohl über die Liste wie 
> erwartet vom Anfang zum Ende (v. l. n. r.) iteriert wird.  Ein Set wird in 
> der Dokumentation als eine ungeordnete Sammlung von einzigartigen Elementen
> ("an unordered collection of unique elements") definiert, bloss liegt
> dieser anscheinend doch ein Ordnungsprinzip zugrunde.  Welches?

Wie Vinzent vermutet: Sets basieren auf einer Hashtabelle. Bei der
gegebenen Zahl von Elementen wird die Hashtabelle 16 Einträge erlauben;
damit ergibt sich als Reihenfolge

py> sorted((hash(x)%16,x) for x in ["a", "b", "e", "c", "g", "d"])
[(0, 'a'), (2, 'c'), (3, 'b'), (4, 'e'), (5, 'd'), (6, 'g')]

Ciao,
Martin


Mehr Informationen über die Mailingliste python-de