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

Susan Sarandon
Libérer: 2024-11-02 04:44:30
original
556 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal