Sets und Listen werden in Python anders gehandhabt, und es scheint keinen einheitlichen Weg zu geben, mit beiden zu arbeiten. Das Hinzufügen eines Elements zu einer set
erfolgt beispielsweise mit der Methode add
und für die list
mit der Methode append
. Ich bin mir bewusst, dass es verschiedene Semantiken gibt, aber es gibt auch gemeinsame Semantiken, und oft kümmert sich ein Algorithmus, der mit einer Sammlung arbeitet, eher um die Gemeinsamkeiten als um die Unterschiede. Die C++ - STL zeigt, dass dies funktionieren kann. Warum gibt es in Python kein solches Konzept?Warum werden Sammlungen in Python nicht einheitlich behandelt?
Bearbeiten: In C++ kann ich eine output_iterator
verwenden, um Werte in einer (fast) beliebigen Art von Sammlung, einschließlich Listen und Mengen zu speichern. Ich kann einen Algorithmus schreiben, der einen solchen Iterator als Argument akzeptiert und Elemente darauf schreibt. Der Algorithmus ist dann völlig agnostisch für die Art des Containers (oder eines anderen Geräts, kann eine Datei sein), die den Iterator unterstützt. Wenn der Sicherungscontainer ein Satz ist, der Duplikate ignoriert, dann ist dies die Entscheidung des Aufrufers. Mein spezifisches Problem ist, dass es mir jetzt mehrere Male passiert ist, dass ich zum Beispiel eine list
für eine bestimmte Aufgabe verwendet habe und später entschied, dass set
geeigneter ist. Jetzt muss ich die append
zu add
an mehreren Stellen in meinem Code ändern. Ich frage mich nur, warum Python kein Konzept für solche Fälle hat.
"Sets und Listen werden in Python anders behandelt, weil sie ** im Wesentlichen ** anders sind. Sie können nicht "einheitlich" gemacht werden, weil - nun - sie sind so verschieden wie Fließkomma und Datei. "Ich bin mir bewusst, dass es unterschiedliche Semantiken gibt". Okay. Wonach fragst du? Speziell? Können Sie detailliertere Beispiele für Ihre Meinung geben? –
@ S.Lott: Ich habe ein Beispiel und einige Erläuterungen hinzugefügt. –
"Ein Satz, der Duplikate ignoriert"? Was? Was ist das? Ein Set kann per Definition keine Duplikate haben. Ich verstehe nicht, wonach du fragst. –