Lesen diese Frage Ich fragte mich, wie viel Zeit (asymptotisch gesprochen) Python benötigt, um Ausdrücke wie
auszuwerten %Vor%Das heißt, um zu überprüfen, ob zwei Instanzen der festgelegten Klasse gleich sind.
Der Vergleich zwischen den Sets wird durch die Funktion set_richcompare
in setobject.c
, Zeile implementiert 1848 Sie werden sehen, dass die Gleichheit folgendermaßen implementiert ist:
Wenn die Mengen nicht die gleiche Größe haben, geben Sie false zurück.
Wenn beide Mengen gehasht wurden und die Hashwerte sich unterscheiden, geben Sie false zurück.
Rufen Sie set_issubset
auf.
Der Subset-Test für zwei Sets sieht so aus:
%Vor%Sie werden sehen, dass es funktioniert, indem Sie alle Elemente der ersten Menge durchlaufen und dann jede einzelne in der anderen Menge nachschlagen. Also (es sei denn es gibt viele Hash-Kollisionen) ist dies linear in der Größe der ersten Menge.
Tags und Links python time-complexity