[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