Dans ce didacticiel, nous verrons comment obtenir l’intersection des deux listes. L'intersection de deux listes signifie que nous devons récupérer tous les éléments familiers dans les deux listes initiales.
Python est connu pour son excellente structure de données intégrée. La liste Python est l’un des types de données intégrés célèbres et précieux de Python. Il peut stocker les différentes valeurs des types de données dans un ordre trié. Cependant, il n'existe pas de fonction intégrée pour les listes comme les ensembles.
Logique du 1er ordre
Python propose de nombreuses façons d'effectuer l'intersection des listes. Voyons le scénario suivant.
Saisir :
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]
Sortir:
[90, 11, 58, 31, 66, 28, 54]
Saisir :
list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26]
Sortir:
[9, 11, 26, 28]
Voyons les méthodes suivantes pour obtenir l'intersection de deux listes.
Méthode - 1 : Utilisation de la boucle for
# Python program to get the intersection # of two lists in most simple way def intersection_list(list1, list2): list3 = [value for value in list1 if value in list2] return list3 # Driver Code list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Sortir:
[90, 11, 58, 31, 66, 28, 54]
Nous avons utilisé la boucle for pour obtenir la valeur commune des deux listes et l'avons stockée dans la variable list3.
Méthode - 2 : Convertir la liste en ensemble
def intersection_list(list1, list2): return list(set(list1) & set(list2)) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Sortir:
[66, 90, 11, 54, 58, 28, 31]
Méthode - 3 :
Nous utiliserons l'ensemble intégré intersection() méthode. Le intersection() est un élément de première classe de l'ensemble. Comprenons l'exemple suivant.
Exemple -
gestion des exceptions Java
# Python program to get the intersection # of two lists using set() and intersection() def intersection_list(list1, list2): return set(list1).intersection(list2) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Sortir:
{66, 90, 11, 54, 58, 28, 31}
Méthode - 4 :
Dans cette méthode, nous utiliserons la méthode hybride. C’est un moyen très efficace d’effectuer la tâche. Comprenons l'exemple suivant.
Exemple -
# Python program to get the intersection # of two lists def intersection(list1, list2): # Use of hybrid method temp = set(list2) list3 = [value for value in list1 if value in temp] return list3 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection(list1, list2))
Sortir:
[90, 11, 58, 31, 66, 28, 54]
Méthode - 5 :
Dans cette méthode, nous utiliserons le filtre() méthode. L'intersection est effectuée sur des sous-listes à l'intérieur d'autres listes. Comprenons l'exemple suivant.
Exemple -
# Python program togetthe intersection # of two lists, sublists and use of filter() def intersection_list(list1, list2): list3 = [list(filter(lambda x: x in list1, sublist)) for sublist in list2] return list3 list1 = [10, 9, 17, 40, 23, 18, 56, 49, 58, 60] list2 = [[25, 17, 23, 40, 32], [1, 10, 13, 27, 28], [60, 55, 61, 78, 15, 76]] print(intersection_list(list1, list2))
Sortir:
[[17, 23, 40], [10], [60]]
Le filtre() La méthode prend chaque élément de la sous-liste et vérifie s’il est présent dans la liste1. La compréhension de liste est exécutée pour chaque sous-liste de la liste2.