Wenn ich ein Array von Zeichenfolgen habe, kann ich überprüfen, ob sich eine Zeichenfolge im Array befindet, ohne eine for
Schleife auszuführen? Insbesondere suche ich nach einer Möglichkeit, dies innerhalb einer if
Anweisung zu tun , also ungefähr so:
if [check that item is in array]:
Antworten:
Angenommen, Sie meinen "Liste", in der Sie "Array" sagen, können Sie dies tun
Dies funktioniert für jede Sammlung, nicht nur für Listen. Bei Wörterbüchern wird geprüft, ob der angegebene Schlüssel im Wörterbuch vorhanden ist.
quelle
Ich gehe auch davon aus, dass Sie "Liste" meinen, wenn Sie "Array" sagen. Die Lösung von Sven Marnach ist gut. Wenn Sie die Liste wiederholt überprüfen, lohnt es sich möglicherweise, sie in einen Satz oder ein Frozenset umzuwandeln, was für jede Überprüfung schneller sein kann. Angenommen, Ihre Liste der Strs heißt
subjects
:quelle
Verwenden Sie eine Lambda-Funktion.
Angenommen, Sie haben ein Array:
Überprüfen Sie, ob 5 in
nums
:Diese Lösung ist robuster. Sie können jetzt überprüfen, ob sich eine Zahl in Ihrem Array befindet, die eine bestimmte Bedingung erfüllt
nums
.Überprüfen Sie beispielsweise, ob eine Zahl größer oder gleich 5 vorhanden ist in
nums
:quelle
TypeError: object of type 'filter' has no len()
Sie müssen .values für Arrays verwenden. Angenommen, Sie haben einen Datenrahmen mit einem Spaltennamen, dh Sie können ['Name'] testen
Für eine normale Liste müssen Sie keine .values verwenden
quelle
Sie können dieselbe Syntax auch für ein Array verwenden. Zum Beispiel bei der Suche innerhalb einer Pandas-Serie:
quelle