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]:
5 réponses
En supposant que vous voulez dire "liste" où vous dites "tableau", vous pouvez faire
if item in my_list:
# whatever
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
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)
, 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
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