web-dev-qa-db-fra.com

Vérifier si l'élément est dans un tableau / une liste

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]:
177
SomeKittens

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.

349
Sven Marnach

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
15
Michael Hoffman

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)
2
Marquistador

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

0
sam komo