atcoder-Tutorial Es gab ein Problem, bei dem festgestellt werden musste, ob jedes Element der Liste gerade oder ungerade war. Daher hatte ich normalerweise eine integrierte Funktion, wenn ich dachte, es wäre einfach zu schreiben. Es mag eine Geschichte sein, so viel zu schreiben, aber bitte lassen Sie mich sie verwenden, weil sie vorbereitet ist.
all(iterable)
Gibt True zurück, wenn alle ** Elemente von iterable true sind ** (oder wenn iterable leer ist).
def all(iterable):
for element in iterable:
if not element:
return False
return True
Hier ist was ** itarable ** ist.
Ein wiederholbares Objekt. Ein Objekt, das jeweils ein Element zurückgibt. ex) Listen, Tapples, Wörterbücher ...
Wenn Sie dies im Argument von ** iter () ** übergeben, wird ** Iterator ** für das Objekt zurückgegeben. (** Iterator ** ist ein Objekt, das den Datenfluss (grob) ausdrückt)
Zum Beispiel
for i in A:
Ein hier ist ** itarable **. for
ruft automatisch ** iter () ** auf, um eine temporäre anonyme Variable zu erstellen und ** iterator ** während der Schleife beizubehalten.
Also lasst uns "alle" versuchen!
Das folgende Programm prüft, ob alle Elemente des Arrays ** array ** mit all
vom Typ int sind.
Überlegen Sie, wie es aussieht, bevor Sie sich die Ausgabe ansehen!
def check(array):
if all( isinstance(x, int) for x in array):
print("Array{}Alle Elemente von sind vom Typ int".format(array))
else:
print("Array{}Einige der Elemente sind nicht vom Typ int! !!".format(array))
check([2,5,6])
check([1,4,[]])
check(["1",2,3])
check([])
check(1)
Alle Elemente des Arrays [2, 5, 6] sind vom Typ int Einige Elemente des Arrays [1, 4, []] sind nicht vom Typ int! !! Einige Elemente des Arrays ['1', 2, 3] sind nicht vom Typ int! !! Alle Elemente von array [] sind vom Typ int
TypeError Traceback (most recent call last)
weggelassen
TypeError: 'int' object is not iterable
War es wie erwartet? ** True ** wird auch für leere Arrays zurückgegeben. Natürlich habe ich einen Fehler bekommen, der besagt, dass der fünfte nicht iterierbar ist. Beachten Sie diese Punkte.
any(iterable)
Als nächstes werde ich über "any ()" schreiben. Es scheint nicht erklärungsbedürftig zu sein, da der Inhalt dieser beiden Funktionen immer noch die Funktionsnamen sind (lacht)
Gibt True zurück, wenn ein ** Element von iterable true ** ist. Gibt False zurück, wenn iterable leer ist. Entspricht dem folgenden Code:
def any(iterable):
for element in iterable:
if element:
return True
return False
Das folgende Programm prüft, ob ein Element eines Arrays ** array ** mit any
einen int-Typ hat.
Überlegen Sie nach wie vor, wie es aussehen wird, bevor Sie sich die Ausgabe ansehen!
def check(array):
if any( isinstance(x, int) for x in array):
print("Array{}Es gibt einen int-Typ im Element von! !!".format(array))
else:
print("Array{}Es gibt keinen int-Typ im Element von!".format(array))
check([2,"5","6"])
check(["1","4","a"])
check([])
check([1])
Das Element des Arrays [2, '5', '6'] hat einen int-Typ! !! Es gibt keinen int-Typ in den Elementen des Arrays ['1', '4', 'a']! Es gibt keinen int-Typ im Element des Arrays []! Das Element des Arrays [1] hat einen int-Typ! !!
Wie war es? Nr. 3 ist besonders vorsichtig. Sie können sehen, dass "False" bei einem leeren Array im Gegensatz zu "all" zurückgegeben wird. Kann ich noch etwas erklären?
Was haben Sie gedacht? Ich kann den Kommentar und das Gefühl nicht leugnen, dass es überhaupt keine Nachfrage gab, aber ich hoffe, es hilft. Dann diesmal hier!
Recommended Posts