Im Moment lerne ich Python mit dem Buch "Einstieg in Python" von Thomas Theis.
Auf der Seite 123 steht folgendes Beispiel:
#Set
s1 = set([8, 15, "x")]
print("Original:, s1)
Der Ausdruck sieht so aus: Original: {8, 'x', 15}
Warum ist die Reihenfolge verändert?
veränderte Reihenfolge mit print
Hallo,
zunächst einmal hast du ungültigen Code gepostet (Klammern, Anführungszeichen). So gehts:
Und mit den python-code-tags sieht er doch auch gleich hübscher aus.
Die Reihenfolge ist verändert, weil:
Ein set ist eigentlich nur ein Sonderfall eines dicts, und wie die Reihenfolge in der internen hash-Tabelle aussieht, hängt von der Implementierung ab.
Du könntest es im Nachhinein für die Ausgabe natürlich wieder sortieren, aber in deinen Fall (unterschiedliche Datentypen) müsstest du dir da dann erstmal überlegen, nach was du es überhaupt sortiert haben willst. "x"<8? usw.
Edit: Wenn du das set nur benutzt, um die elemente deine Liste mal eben unique zu machen, dabei aber die Reihenfolge beibehalten willst, ist vielleicht eine der "order preserving"-Lösungen von hier besser für dich geeignet: http://www.peterbe.com/plog/uniqifiers-benchmark
zunächst einmal hast du ungültigen Code gepostet (Klammern, Anführungszeichen). So gehts:
Code: Alles auswählen
s1 = set([8, 15, "x"])
print("Original:", s1)
Die Reihenfolge ist verändert, weil:
http://docs.python.org/3/tutorial/datas ... .html#setsA set is an unordered collection with no duplicate elements.
Ein set ist eigentlich nur ein Sonderfall eines dicts, und wie die Reihenfolge in der internen hash-Tabelle aussieht, hängt von der Implementierung ab.
Du könntest es im Nachhinein für die Ausgabe natürlich wieder sortieren, aber in deinen Fall (unterschiedliche Datentypen) müsstest du dir da dann erstmal überlegen, nach was du es überhaupt sortiert haben willst. "x"<8? usw.
Edit: Wenn du das set nur benutzt, um die elemente deine Liste mal eben unique zu machen, dabei aber die Reihenfolge beibehalten willst, ist vielleicht eine der "order preserving"-Lösungen von hier besser für dich geeignet: http://www.peterbe.com/plog/uniqifiers-benchmark