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>
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>
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>
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.
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!