Vérification de l'appartenance à un sous-ensemble de liste pour des scénarios critiques en termes de performances
Étant donné deux listes, déterminer si l'une est un sous-ensemble de l'autre est une opération courante . Pour obtenir des performances optimales, il est essentiel de sélectionner l'approche la plus efficace.
Une méthode consiste à croiser les ensembles dérivés des listes et à vérifier si le résultat est égal à un ensemble. Cependant, étant donné le nombre d'ensembles de données impliqués, une solution plus performante est nécessaire.
Lorsqu'une liste est statique et l'autre est un dictionnaire dynamique à partir duquel les clés sont extraites, une approche alternative est recommandée. Considérez la solution suivante :
<code class="python">def is_subset(lookup_table, dynamic_list): # Convert lookup table to a set for efficient lookups lookup_set = set(lookup_table) # Convert dynamic list to a set for faster comparisons dynamic_set = set(dynamic_list.keys()) # Check if the dynamic list's set is a subset of the lookup table's set return dynamic_set <= lookup_set
En convertissant la table de recherche statique et la liste dynamique en ensembles, les opérations de recherche sont nettement plus rapides. De plus, l'utilisation de l'opérateur <= pour comparer des ensembles est très efficace.
Exemples :
<code class="python">>>> lookup_table = [1, 3, 5] >>> dynamic_list = [1, 3, 5, 8] >>> is_subset(lookup_table, dynamic_list) True >>> lookup_table = ['yes', 'no', 'hmm'] >>> dynamic_list = ['sorry', 'no', 'hmm'] >>> is_subset(lookup_table, dynamic_list) False</code>
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!