Maison > Article > développement back-end > Comment trouver l'intersection de plusieurs listes en Python ?
Python : intersection de plusieurs listes
Lorsque vous travaillez avec plusieurs listes, trouver leurs éléments communs peut être une opération précieuse. Bien que Python fournisse une fonction pratique pour croiser deux listes (set(a).intersection(b)), la tâche devient légèrement plus complexe lorsqu'il s'agit de plus de deux listes.
Considérons un scénario dans lequel nous avons un liste de listes d contenant plusieurs listes (dans votre exemple, d = [[1,2,3,4], [2,3,4], [3,4,5,6,7]]). Pour trouver l'intersection de toutes les listes dans d, nous pouvons exploiter les opérations d'ensemble et les fonctions intégrées de Python.
Une approche consiste à utiliser la méthode set.intersection() à plusieurs reprises. Cependant, cette méthode ne fonctionne que sur deux ensembles à la fois, nous devons donc l’appliquer de manière itérative. Voici comment procéder :
<code class="python">intersection = set(d[0]) for lst in d[1:]: intersection = intersection.intersection(set(lst)) print(intersection) # Outputs: {3, 4}</code>
Une autre solution concise et efficace utilise l'opérateur * de Python et la fonction map() :
<code class="python">intersection = set.intersection(*map(set, d)) print(intersection) # Outputs: {3, 4}</code>
Dans cette solution, nous utilisons la map( ) fonction pour convertir chaque liste de d en un ensemble. L'opérateur * décompresse ensuite cette séquence d'ensembles dans les arguments de set.intersection(), nous permettant de trouver l'intersection de tous les ensembles simultanément.
Ces deux approches trouvent efficacement l'intersection de plusieurs listes stockées dans une liste de listes. En tirant parti des opérations d'ensemble de Python, nous pouvons facilement identifier les éléments communs parmi un nombre quelconque de listes.
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!