Ich habe eine Funktion namens checker (nums), die ein Argument hat, das später eine Liste erhält. Was ich mit dieser Liste machen möchte, ist zu überprüfen, ob jedes andere Element größer oder gleich dem vorherigen ist.
Beispiel:
Ich habe eine Liste [1, 1, 2, 2, 3]
und ich muss prüfen, ob es die Bedingung erfüllt.
Da dies der Fall ist, sollte die Funktion True
Mein Code:
%Vor%Dies wird nur einmal ausgeführt und gibt True zurück, wenn die erste Bedingung zutrifft. Ich habe eine Erklärung gesehen, wenn alle und unsicher sind, wie man es benutzt.
Ihre Funktion kann folgendermaßen reduziert werden:
%Vor%Erläuterung
zip
durchläuft seine Argumente parallel, d. h. nums[0]
& amp; nums[1]
werden abgerufen, dann nums[1]
& amp; nums[2]
etc. i <= j
führt den tatsächlichen Vergleich durch ()
stellt sicher, dass jeder Wert der Bedingung, d. h. True
oder False
, einzeln extrahiert wird. Dies nennt man faule Auswertung . all
prüft einfach alle Werte auf True
. Auch das ist faul. Wenn einer der Werte, die getreu dem Ausdruck des Generators extrahiert werden, False
ist, schließt er kurz und gibt False
zurück. Ihr Code kann tatsächlich auf die Überprüfung reduziert werden, ob nums
sortiert ist, z. B.
Dies entspricht genau Ihren Erwartungen, z. B.
%Vor% Ähnliche Lösung für @jp_data_analysis mit more_itertools.windowed
Und zu wissenschaftlichen Zwecken (nicht empfohlener Code), hier ist ein funktionellerer Ansatz
%Vor%