Maison  >  Article  >  développement back-end  >  Comment vérifier efficacement plusieurs valeurs dans une liste en Python : All vs Sets ?

Comment vérifier efficacement plusieurs valeurs dans une liste en Python : All vs Sets ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 04:44:30478parcourir

How to Efficiently Check for Multiple Values in a List in Python: All vs Sets?

Test de plusieurs valeurs pour l'appartenance à une liste

Lorsque vous essayez de vérifier si plusieurs valeurs appartiennent à une liste, vous pouvez rencontrer des résultats inattendus. Par exemple, tester l'appartenance à l'aide de l'opérateur ',' de Python peut renvoyer un tuple inattendu.

<code class="python">'a','b' in ['b', 'a', 'foo', 'bar']
('a', True)</code>

Fonction "all" de Python

Pour tester avec précision l'appartenance de plusieurs valeurs, utilisez la fonction all de Python dans en conjonction avec la compréhension de la liste, comme démontré ci-dessous :

<code class="python">all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b'])
True</code>

Approches alternatives

Ensembles

Les ensembles peuvent également être utilisés pour les tests d'adhésion. Cependant, ils ont des limites. Par exemple, ils ne peuvent pas gérer des éléments non hachables comme les listes.

<code class="python">{'a', 'b'} <= {'a', 'b', 'foo', 'bar'}
True

{'a', ['b']} <= {'a', ['b'], 'foo', 'bar'}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'</code>

Comparaisons de vitesse

Dans la plupart des cas, les tests de sous-ensembles à l'aide de la fonction all sont plus rapides que l'utilisation d'ensembles. Cependant, cet avantage diminue lorsque la liste est longue et contient de nombreux éléments non hachables. De plus, si les éléments de test sont déjà stockés dans un ensemble, l'utilisation du test de sous-ensemble sera nettement plus rapide.

Conclusion

Lors du test de l'appartenance de plusieurs valeurs dans une liste, la fonction all avec liste la compréhension est l’approche recommandée. Les ensembles peuvent être utiles dans certaines situations, mais leurs limites doivent être prises en compte. L'approche la plus optimale dépend du contexte spécifique et des données testées.

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