Maison  >  Article  >  développement back-end  >  Comment vérifier efficacement l’appartenance à un sous-ensemble de liste dans des scénarios critiques en termes de performances ?

Comment vérifier efficacement l’appartenance à un sous-ensemble de liste dans des scénarios critiques en termes de performances ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-18 13:55:30544parcourir

How to Efficiently Check List Subset Membership in Performance-Critical Scenarios?

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!

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