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

Si j'ai un tableau de chaînes, puis-je vérifier si une chaîne est dans le tableau sans faire de 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]:
142
demandé sur user1767754 2012-06-28 23:39:16

5 réponses

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

if item in my_list:
    # whatever
287
répondu Sven Marnach 2012-06-28 19:40:26

Je vais aussi supposer que vous voulez dire "liste" quand vous dites "array."La solution de Sven Marnach est bonne. Si vous allez faire des contrôles répétés sur la liste, alors il pourrait être utile de le convertir en un ensemble ou frozenset, qui peut être plus rapide pour chaque contrôle. En supposant que votre liste de str est appelée subjects:

subject_set = frozenset(subjects)
if query in subject_set:
    # whatever
14
répondu Michael Hoffman 2012-06-28 19:46:02

Utilisez une fonction lambda.

Disons que vous avez un tableau:

nums = [0,1,5]

Vérifier 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 satisfaisant une certaine 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
répondu Marquistador 2017-09-11 16:33:59

, Vous devez utiliser .les valeurs pour les tableaux. par exemple, disons que vous avez dataframe qui a un nom de colonne ie, test ['Name'], Vous pouvez faire

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

Pour une liste normale, vous n'avez pas à utiliser .valeurs

0
répondu sam komo 2017-11-25 11:28:10

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

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

if item in ser.values:
    # do stuff
-3
répondu BCR 2015-12-11 23:32:01