2017-05-17 5 views
0

Ich frage mich, ob Sie eine Reihe von Bedingungen als Bedingung übergeben können, speziell in Python?Verwenden Boolean-Array als Bedingung

zum Beispiel:

conditions = [True, False, True, True, False] 

if conditions: 
    <do stuff> 

Python keinen Fehler werfen, wenn ich ihm so etwas wie diese geben, aber ich bin nicht sicher, ob es zu tun, was ich tun will. Vergleicht es tatsächlich die ganze Liste? Und wenn ja, ist es in einer and oder or Mode? Oder macht es etwas anderes, als nur den ersten Gegenstand zu vergleichen?

+1

Es prüft nur, ob die Liste nicht leer ist. – vaultah

+0

Verwandte (und meiner Meinung nach ein Duplikat) http://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty – ayhan

+2

Verwechseln Sie nicht die Begriffe "Array" und "Liste". – user2357112

Antwort

0

Verwendung all:

if all(conditions): 
    ... 
+0

warum -1? Meine Antwort war nicht nützlich ..? – grundic

+0

Verschiedene Leute haben verschiedene Gründe, zB unvollständige Antworten, Antworten ohne Erklärung oder sogar Python 2-Links. Sie können nicht sicher wissen \ * shrug \ * – vaultah

+1

Sie sollten sich jedoch daran erinnern, dass sie (ein bisschen) ihre Bewertung auch opfern. Ich kann verstehen, wenn die Frage über Python und Antwort war über Peppa Pig, aber hier ... Doh .. – grundic

4

Leere Listen sind "false"; Alle anderen sind "wahr". Wenn Sie Sachen tun, wenn alle die Bedingungen erfüllt sind, verwenden

if all(conditions): 
    <do stuff> 

Wenn Sie Sachen tun, wenn jede der Bedingungen erfüllt sind, verwenden

if any(conditions): 
    <do stuff> 
2

Eine Liste wird Übergeben Sie einen if-Test, wenn dieser nicht leer ist. So wird [] falsch sein und alle anderen Werte werden für die Zwecke des Tests wahr sein.

Wenn Sie testen möchten, ob ein Wert einer Liste True ist, können Sie dazu any verwenden. Wenn Sie testen möchten, ob alle Werte wahr sind, verwenden Sie all auf die gleiche Weise.

Beispiel:

if any(conditions): 
    do something 
0

Verwenden Sie einfach all:

>>> conditions = [True, False, True, True, False] 
>>> all(conditions) 
False 
>>> conditions = [True, True, True, True, True] 
>>> all(conditions) 
True 
>>> 

Aus der Dokumentation:

Return True, wenn alle Elemente des iterable wahr sind (oder wenn der iterable ist leer).

Verwandte Themen