Maison  >  Article  >  développement back-end  >  Comment tester avec précision l’appartenance de plusieurs valeurs dans une liste Python ?

Comment tester avec précision l’appartenance de plusieurs valeurs dans une liste Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 18:32:29965parcourir

How to Accurately Test for the Membership of Multiple Values in a Python List?

Test de l'appartenance de plusieurs valeurs dans une liste Python

En Python, tester l'appartenance de plusieurs valeurs dans une liste à l'aide du 'in' l’opérateur peut conduire à des résultats inattendus. Prenons l'exemple suivant :

'a','b' in ['b', 'a', 'foo', 'bar']
('a', True)

Le résultat 'a', True indique que 'a' est présent dans la liste, mais il ne précise pas si 'b' était également présent. En effet, Python traite l'expression « in » comme un tuple, ce qui donne le résultat affiché ci-dessus.

Pour vérifier avec précision si « a » et « b » sont présents dans la liste, vous pouvez utiliser ce qui suit approche :

all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b'])
True

Cette expression garantit que chaque élément de la liste ['a', 'b'] est contenu dans le conteneur ['b', 'a', 'foo', 'bar' ]. Si l'un des éléments n'est pas présent, l'expression retournera False.

Options alternatives

En plus de la fonction « tout », il existe d'autres méthodes pour effectuer cette vérification. , mais ils ne sont peut-être pas aussi polyvalents que l'approche « tout ».

  • Intersection des ensembles : Les ensembles peuvent être utilisés pour tester l'appartenance à l'aide de la méthode « issubset ». Cependant, les ensembles ne peuvent contenir que des éléments hachables, ce qui limite leur applicabilité à certains types de données.
  • Expression génératrice : Une expression génératrice peut être utilisée pour effectuer la même opération que « tout », mais il peut ne pas gérer tous les types d'entrée aussi efficacement.

Considérations relatives à la vitesse

Dans certaines situations, le test de sous-ensemble peut être plus rapide que le test « tout » approche, en particulier lorsque le conteneur et les éléments de test sont petits. Cependant, la différence de vitesse globale n'est pas suffisamment importante pour justifier une utilisation massive du test de sous-ensemble.

Il est important de noter que le comportement de « in » dépend du type d'argument de gauche. Par exemple, utiliser « in » avec une chaîne concatènera les valeurs plutôt que de tester l'appartenance.

Le choix de la meilleure approche pour tester l'appartenance de plusieurs valeurs dans une liste dépend des exigences spécifiques et des types de données impliqués. et considérations de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn