Prüfen Sie, ob alle Werte null sind durchsuchbar

Ist es eine gute, prägnante/built-in Möglichkeit zu sehen, ob alle Werte in einem iterierbar sind Nullen? Jetzt bin ich mit all() mit ein wenig list zu begreifen, aber (für mich) es scheint, wie es sein sollte, eine expressive Methode. Ich würde dies als etwas gleichwertig zu einem memcmp() in C.

values = (0, 0, 0, 0, 0)
# Test if all items in values tuple are zero
if all([ v == 0 for v in values ]) :
    print 'indeed they are'

Ich würde erwarten, dass eine eingebaute Funktion, die so etwas macht wie:

def allcmp(iter, value) :
    for item in iter :
        if item != value :
            return False
    return True

Bedeutet, dass die Funktion existiert in python und ich nur blind, oder sollte ich nur stick mit meiner original-version?

Update

Ich bin nicht was darauf hindeutet, dass allcmp() ist die Lösung. Es ist ein Beispiel, was ich denke vielleicht sinnvoller. Dies ist nicht der Ort, wo ich würde vorschlagen, new built-ins für Python.

Meiner Meinung nach all() ist das nicht sinnvoll. Es gar nicht Ausdrücken, was "alle" überprüft werden. Man könnte davon ausgehen, dass all() nimmt eine iterierbar, aber es gar nicht Ausdrücken, was die Funktion suchen (ein iterierbar von bools, dass die tests alle von Ihnen für True). Was ich verlange ist einige Funktion wie mein allcmp() nimmt zwei Parameter: einen wiederholenden und einen Vergleich Wert. Ich bin gefragt, ob es eine integrierte Funktion, die etwas tut, ähnlich wie meine aus allcmp().

Rief ich mir allcmp() wegen meinem C-hintergrund und memcmp()der name meiner aus-Funktion ist irrelevant hier.

InformationsquelleAutor der Frage mjschultz | 2010-08-19

Schreibe einen Kommentar