Maison  >  Article  >  développement back-end  >  Programme Python pour calculer la différence symétrique entre deux listes

Programme Python pour calculer la différence symétrique entre deux listes

WBOY
WBOYavant
2023-08-28 08:57:291398parcourir

Programme Python pour calculer la différence symétrique entre deux listes

En Python, vous pouvez utiliser des listes pour enregistrer plusieurs éléments dans une seule variable. L'un des quatre types de données intégrés à Python pour stocker des collections de données est une liste ; les trois autres sont des tuples, des ensembles et des dictionnaires, chacun ayant un objectif unique.

Qu'est-ce qu'une liste ?

Les crochets sont utilisés pour construire des listes. Les outils les plus puissants en Python sont les listes, car elles ne sont pas forcément homogènes. Les types de données tels que les entiers, les chaînes et les objets peuvent tous être trouvés dans une liste. Étant donné que les listes sont mutables, elles peuvent être modifiées même après leur création.

Différences symétriques dans les listes

L'ensemble des éléments qui sont dans LISTE1 ou LISTE2 mais pas dans les deux constitue la différence symétrique entre les deux listes LISTE1 et LISTE2.

Il existe plusieurs façons de calculer la différence symétrique entre deux listes en python, nous prendrons la manière la plus efficace pour trouver la même différence.

Nous avons converti des listes en ensembles puis fait des différences symétriques entre ces ensembles.

Algorithme

  • Créez une liste

  • Convertir la liste en ensemble

  • Imprimez la différence de symétrie de l'ensemble converti

  • Imprimez la différence symétrique de la liste

Exemple

Dans le programme ci-dessous, en utilisant "in" on peut trouver la différence entre deux listes. Le mot-clé in a deux fonctions.

  • Déterminez si une valeur existe dans une chaîne, une liste, un tuple, une plage, etc.

  • Parcourez la liste à plusieurs reprises dans une boucle for.

L_1 = [11, 12, 13]
L_2 = [12, 13, 42]
L_3 = [3, 42, 5]

# converting lists to set
set_1 = set(L_1)
set_2 = set(L_2)

# now print the symmetric difference when

# when the converted set is passed as a parameter
print(set_1.symmetric_difference(set_2))

# now print the symmetric difference when list is

# passed as a parameter by converting it to a set
print(set_2.symmetric_difference(L_3))

Sortie

{42, 11}
{13, 3, 12, 5}

Exemple

Ici, nous créons deux listes puis créons une variable temporaire vide. Nous utilisons ensuite une boucle for pour parcourir les nombres de la liste. L'instruction If vérifie si le numéro est commun, puis ajoute l'élément à la première variable temporaire créée. Imprimez ensuite la liste avec différents éléments.

list_1 = [1, 35, 20, 25, 70, 35, 80]
list_2 = [25, 80, 35]
temp_3 = []
for element in list_1:
   if element not in list_2:
      temp_3.append(element)
print(temp_3)

Sortie

[1, 20, 70]

Utiliser la compréhension de liste

Dans cette méthode, nous convertissons explicitement la liste en un ensemble, puis utilisons l'opérateur de soustraction pour en supprimer un seul de l'autre liste. Accédez à Collections en Python pour obtenir d’autres références de collections. Il s’agit d’une stratégie similaire à celle que nous avons utilisée auparavant. La seule différence est que la syntaxe de compréhension de liste est utilisée à la place des boucles imbriquées.

Exemple

Le programme suivant compare deux listes : list_1 et list_2. Il crée un ensemble à partir de la deuxième liste, puis l'utilise pour filtrer toutes les valeurs apparaissant dans les deux listes. Le résultat est une nouvelle liste filtrée (temp_3) contenant uniquement les éléments de list_1 qui n'apparaissent pas dans SET_1 (list_2).

list_1 = [13, 15, 22, 25, 30, 54, 40]
list_2 = [54, 45, 30, 13]
SET_1 = set(list_2)
temp_3 = [x for x in list_1 if x not in SET_1]
print(temp_3)

Sortie

[15, 22, 25, 40]

Ne pas utiliser set()

Dans cette méthode, les éléments sont copiés à partir de deux listes en utilisant des techniques de combinaison de base tout en vérifiant périodiquement s'ils existent dans l'autre liste.

Exemple

Dans le programme ci-dessous, nous définissons une fonction appelée Différence qui accepte deux listes comme paramètres. Cette fonction crée une nouvelle liste list_dif contenant des éléments qui ne sont pas présents dans les deux listes d'origine. Il imprime ensuite cette nouvelle liste et la différence entre les deux listes originales. Dans cet exemple, il imprime [1, 12, 25, 22, 30, 20].

# this method helps to get difference of two lists

# by not using set()
def Difference(list1, list2):
   list_dif = [i for i in list_1 + list_2 if i not in list_1 or i not in list_2]
   return list_dif
list_1 = [1, 12, 25, 22, 30, 65, 70]
list_2 = [65, 20, 70]
list_3 = Difference(list_1, list_2)
print(list_3)

Sortie

[1, 12, 25, 22, 30, 20]

Utilisez la différence symétrique

La méthode

Symétriedifférence () renvoie l'élément du premier ou du deuxième groupe. Contrairement aux éléments partagés de deux collections, cette méthode ne renvoie pas d'intersection.

Exemple

list_1 = [23, 18, 45, 25, 40, 23, 40]
list_2 = [23, 40, 35]
set_difference = set(list_1).symmetric_difference(set(list_2))
temp_3 = list(set_difference)
print(temp_3)

Sortie

[35, 45, 18, 25]

Conclusion

Dans cet article, nous avons utilisé quatre méthodes différentes pour calculer la différence symétrique entre deux listes via Python. Chaque méthode présente un caractère unique et une manière différente d’aborder la tâche.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer