Python-Sets haben folgende Methoden:
%Vor%Ebenso gibt es auch diese:
%Vor%Und so weiter, für alle üblichen relationalen Algebra-Operationen.
Also ... Frage ist, was genau ist der Unterschied hier? Ich sehe, dass es sagt, dass die update () Versionen s anstelle eines neuen Satzes zurückgibt, aber wenn ich x = s.update(t)
schreibe, bedeutet das, dass id(x) == id(s)
? Beziehen sie sich jetzt auf dasselbe Objekt?
Ich meine, ich verstehe nicht wirklich, warum beide Methoden implementiert sind. Es scheint keine signifikante Funktionalität hinzuzufügen.
Sie sind sehr anders. Ein Satz ändert den Satz an Ort und Stelle , während der andere den ursprünglichen Satz allein belässt und stattdessen eine Kopie zurückgibt.
%Vor% Beachten Sie, wie s
unverändert geblieben ist.
Jetzt habe ich s
selbst geändert. Beachten Sie auch, dass .update()
anscheinend nichts zurückgegeben hat. Es gab s
nicht an den Aufrufer zurück, und der Python-Interpreter gab keinen Wert zurück.
Methoden, die Objekte an Ort und Stelle ändern, geben das Original nie in Python zurück. Ihr Rückgabewert ist immer None
(was niemals widergegeben wird).
Die _update
-Methoden modifizieren die Menge direkt und geben None zurück. Die Methoden ohne update
geben ein neues Objekt zurück. Du willst höchstwahrscheinlich nicht x = s.update(t)
machen, da dies x
auf None setzt.
Die von den _update
-Methoden hinzugefügte Funktionalität besteht in der Fähigkeit, vorhandene Mengen zu ändern. Wenn Sie einen Satz für mehrere Objekte freigeben, möchten Sie möglicherweise den vorhandenen Satz ändern, damit die anderen Objekte, die ihn freigeben, die Änderungen sehen. Wenn Sie nur einen neuen Satz erstellen, wissen die anderen Objekte nichts darüber.
Es sieht so aus, als würden die Dokumente nicht so eindeutig wie möglich angegeben, aber set.update
gibt gar nichts zurück (was der Rückgabe von None
entspricht) %Code%. Wie set.intersection_update
oder list.append
oder list.extend
ändern sie den Container an Ort und Stelle.
Bearbeiten: die Dokumente sagen nicht was Sie zeigen in der Frage. Sie sagen:
Aktualisiere die Menge und füge Elemente aus allen anderen hinzu.
und
Aktualisiere die Menge und behalte nur die darin enthaltenen Elemente und alle anderen.
Tags und Links python set set-operations