Ich experimentiere gerade ein wenig mit set() rum... Dabei Frage ich mich gerade, warum die API anders ist als die von list() ?
z.B. ein neues Objekt anhängen, geht bei einer liste mit .append() bei einem set aber mit .add(), warum?
Unterschiede der API von set() und list(), warum?
Vielleicht weil etwas an eine geordnete Struktur anhängen etwas Anderes ist als etwas zu einer ungeordneten Struktur hinzufügen? Ich fände die Erklärung jedenfalls plausibel.
Gruß,
Christian
Gruß,
Christian
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Weil Mengen und Listen nicht das gleiche sind. Ein Append besagt, dass etwas am Ende angehängt wird. Dies wäre bei einem Set eine falsche Sicherheit, denn wenn man etwas isn Set hinzufügt kann es sein, dass bei ``list(dein_set)`` es am Ende angezeigt wird. Kann aber auch nicht, da werden keine Sicherheiten gegeben. ``insert`` passt ebenso nicht, da man bei Sets nicht definieren kann, wo etwas eingefügt wird.jens hat geschrieben:Dabei Frage ich mich gerade, warum die API anders ist als die von list() ?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich würde sagen, dass ist historisch gewachsen.
Ich fände add() für eine Liste ebenfalls angemessen. Die erste Collection-Bibliothek war meines Wissens die von Smalltalk (um 1980 herum) und dort hatte man sich bemüht, so viel Polymorphismus wie möglich zu benutzen, um die Anzahl der Methodennamen, die man sich merken muss, so klein wie möglich zu halten. Wer ein späteres Beispiel möchte, schaue sich die Collection-Klassen von Java an, da heißt es auch add() für List und Set.
Stefan
Ich fände add() für eine Liste ebenfalls angemessen. Die erste Collection-Bibliothek war meines Wissens die von Smalltalk (um 1980 herum) und dort hatte man sich bemüht, so viel Polymorphismus wie möglich zu benutzen, um die Anzahl der Methodennamen, die man sich merken muss, so klein wie möglich zu halten. Wer ein späteres Beispiel möchte, schaue sich die Collection-Klassen von Java an, da heißt es auch add() für List und Set.
Stefan
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
In Mono auch. Find ich aber beides nicht so toll, append sagt eindeutiger was es tut.sma hat geschrieben:Wer ein späteres Beispiel möchte, schaue sich die Collection-Klassen von Java an, da heißt es auch add() für List und Set.
TUFKAB – the user formerly known as blackbird