Comment vérifier si les listes partagent des éléments en Python ?

DDD
Libérer: 2024-10-20 08:09:02
original
778 Les gens l'ont consulté

How Do I Check if Lists Share Any Items in Python?

Tester si les listes partagent des éléments en Python

Introduction

Lorsque vous travaillez avec plusieurs listes en Python, il est souvent nécessaire de déterminer si des éléments se chevauchent entre ces listes. Cela constitue une opération fondamentale pour diverses tâches d'analyse et de manipulation de données.

Réponse courte

L'approche recommandée pour tester le chevauchement de listes en Python consiste à utiliser not set(a).isdisjoint(b ) expression. Il offre une méthode généralement efficace et concise pour cette tâche.

Analyse détaillée

Méthode 1 : Définir l'intersection

<code class="python">bool(set(a) & set(b))</code>
Copier après la connexion
  • Convertis les deux listes en ensembles, puis vérifie leur intersection.
  • Relativement lent, en particulier pour les grandes listes, car la conversion en ensembles consomme de la mémoire et du temps supplémentaires.

Méthode 2 : Générateur Expression avec l'opérateur In

<code class="python">any(i in a for i in b)</code>
Copier après la connexion
  • Parcourt une liste et vérifie l'appartenance de chaque élément à l'autre liste.
  • Rapide lorsque les éléments sont proches du début de la liste mais inefficace pour les listes sans éléments partagés ou lorsque les éléments partagés sont à la fin.

Méthode 3 : hybride (itération et adhésion définie)

<code class="python">a = set(a); any(i in a for i in b)</code>
Copier après la connexion
  • Convertit une liste en un ensemble et parcourt l'autre liste, vérifiant l'appartenance à l'ensemble.
  • Généralement plus lent que les autres méthodes.

Méthode 4 : Isdisjoint Méthode des ensembles

<code class="python">not set(a).isdisjoint(b)</code>
Copier après la connexion
  • Utilise la méthode isdisjoint() des ensembles pour déterminer si deux ensembles ont des éléments communs.
  • Rapide et efficace pour les ensembles partagés et disjoints listes, surtout lorsque les listes sont de tailles différentes.

Comparaison des performances

Les tests de performances révèlent que not set(a).isdisjoint(b) excelle dans la plupart des cas, en particulier pour les grandes listes ou des situations où les éléments partagés sont clairsemés.

Conclusion

Pour tester le chevauchement de listes en Python, envisagez d'utiliser l'expression not set(a).isdisjoint(b) car elle fournit une méthode fiable, efficace, et solution polyvalente dans différentes tailles de liste et scénarios.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!