323 votes

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

Si j'ai un tableau de chaînes de caractères, puis-je vérifier si une chaîne de caractères se trouve dans le tableau sans faire un for boucle ? Plus précisément, je cherche un moyen de le faire à l'intérieur d'une if donc quelque chose comme ça :

if [check that item is in array]:

602voto

Sven Marnach Points 133943

En supposant que vous voulez dire "liste" là où vous dites "tableau", vous pouvez faire

if item in my_list:
    # whatever

Cela fonctionne pour toute collection, pas seulement pour les listes. Pour les dictionnaires, elle vérifie si la clé donnée est présente dans le dictionnaire.

22voto

Michael Hoffman Points 8557

Je vais aussi supposer que vous voulez dire "liste" quand vous dites "tableau". La solution de Sven Marnach est bonne. Si vous allez faire des vérifications répétées sur la liste, alors il pourrait être utile de la convertir en un ensemble ou un frozenset, ce qui peut être plus rapide pour chaque vérification. En supposant que votre liste de strs s'appelle subjects :

subject_set = frozenset(subjects)
if query in subject_set:
    # whatever

8voto

Marquistador Points 519

Utilisez une fonction lambda.

Disons que vous avez un tableau :

nums = [0,1,5]

Vérifiez si 5 est en nums sur Python 3.X :

(len(list(filter (lambda x : x == 5, nums))) > 0)

Vérifiez si 5 est en nums sur Python 2.7 :

(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 la base de données de l'Agence. nums :

(len(filter (lambda x : x >= 5, nums)) > 0)

3voto

sam komo Points 39

Vous devez utiliser .values pour les tableaux. Par exemple, si vous avez un cadre de données qui a un nom de colonne, c'est-à-dire test['Name'], vous pouvez faire ceci

if name in test['Name'].values :
   print(name)

pour une liste normale vous n'avez pas besoin d'utiliser .values

-5voto

BCR Points 426

Vous pouvez également utiliser la même syntaxe pour un tableau. Par exemple, pour effectuer une recherche dans une série Pandas :

ser = pd.Series(['some', 'strings', 'to', 'query'])

if item in ser.values:
    # do stuff

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X