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

Mary-Kate Olsen
Libérer: 2024-10-18 13:55:30
original
662 Les gens l'ont consulté

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

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

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