Frage Überprüfen Sie, ob ein Element in der Python-Liste None ist (aber null enthält)


Ich versuche einen einfachen Test zu machen, der zurückkehrt True wenn irgendwelche der Ergebnisse einer Liste sind None. Ich will jedoch 0 und '' keine Rückkehr von True.

list_1 = [0, 1, None, 4]
list_2 = [0, 1, 3, 4]

any(list_1) is None
>>>False
any(list_2) is None
>>>False

Wie Sie sehen können, die any() Funktion wie es ist, ist in diesem Zusammenhang nicht hilfreich.


16
2018-03-03 16:05


Ursprung


Antworten:


Zum list Objekte können einfach einen Mitgliedschaftstest verwenden:

None in list_1

Mögen any(), der Mitgliedschaftstest auf a list scannt alle Elemente, schließt aber kurz, indem es zurückkehrt, sobald eine Übereinstimmung gefunden wird.

any() kehrt zurück True oder False, noch nie None, also dein any(list_1) is None Test wird sicherlich nirgendwohin gehen. Sie müssten einen Generatorausdruck für übergeben any() um stattdessen zu iterieren:

any(elem is None for elem in list_1)

30
2018-03-03 16:06



list_1 = [0, 1, None, 4]

list_2 = [0, 1, 3, 4]

any(x is None for x in list_1)
>>>True

any(x is None for x in list_2)
>>>False

5
2018-03-03 16:08