Si j'ai un tableau de chaînes, puis-je vérifier si une chaîne est dans le tableau sans faire une boucle for
? Plus précisément, je cherche un moyen de le faire dans une instruction if
, donc quelque chose comme ceci:
if [check that item is in array]:
En supposant que vous vouliez dire "liste" où vous dites "tableau", vous pouvez le faire
if item in my_list:
# whatever
Cela fonctionne pour n'importe quelle collection, pas seulement pour les listes. Pour les dictionnaires, il vérifie si la clé donnée est présente dans le dictionnaire.
Je vais aussi supposer que vous voulez dire "liste" quand vous dites "tableau". La solution de Sven Marnach est bonne. Si vous allez effectuer des contrôles répétés sur la liste, il peut être intéressant de le convertir en jeu ou en frozenset, ce qui peut être plus rapide pour chaque contrôle. En supposant que votre liste de strs s'appelle subjects
:
subject_set = frozenset(subjects)
if query in subject_set:
# whatever
Utilisez une fonction lambda.
Disons que vous avez un tableau:
nums = [0,1,5]
Vérifiez si 5 est dans nums
:
(len(filter (lambda x : x == 5, nums)) > 0)
Cette solution est plus robuste. Vous pouvez maintenant vérifier si un nombre quelconque satisfaisant un certain condition est dans votre tableau nums
.
Par exemple, vérifiez si un nombre supérieur ou égal à 5 existe dans nums
:
(len(filter (lambda x : x >= 5, nums)) > 0)
Vous devez utiliser .values pour les tableaux. Par exemple, si vous avez une structure de données qui porte un nom de colonne, testez ['Nom'], vous pouvez le faire.
if name in test['Name'].values :
print(name)
pour une liste normale, vous n'avez pas à utiliser .values