Maison >développement back-end >Tutoriel Python >Comment puis-je trouver efficacement les différences uniques entre deux listes en Python ?

Comment puis-je trouver efficacement les différences uniques entre deux listes en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 13:38:09663parcourir

How Can I Efficiently Find the Unique Differences Between Two Lists in Python?

Trouver des différences uniques entre les listes

Lorsque vous traitez plusieurs listes, il est souvent nécessaire de les comparer et d'identifier les différences dans leurs éléments. En Python, un moyen efficace de procéder consiste à trouver la différence définie entre deux listes.

Exemple :

Considérez les deux listes suivantes avec des éléments uniques :

temp1 = ['One', 'Two', 'Three', 'Four']
temp2 = ['One', 'Two']

Objectif :

Créer une troisième liste (temp3) qui contient les éléments de temp1 qui ne sont pas présents dans temp2. Dans ce cas, le résultat attendu est :

temp3 = ['Three', 'Four']

Solution :

Pour éviter d'utiliser des boucles ou des comparaisons explicites, le type de données défini peut être exploité pour trouver efficacement le différence entre les deux lists :

temp3 = list(set(temp1) - set(temp2))

Explication :

  1. set(temp1) convertit temp1 en un ensemble, qui est une collection non ordonnée d'éléments uniques.
  2. set(temp2) crée un autre ensemble à partir de temp2.
  3. set(temp1) - set(temp2) effectue une opération de différence d'ensemble, qui supprime les éléments présents dans set(temp2) de set(temp1).
  4. L'ensemble résultant est reconverti en liste à l'aide de list() pour conserver l'ordre des éléments.

Asymétrie dans la différence d'ensemble :

Notez que la différence d'ensemble n'est pas commutative. Cela signifie que set(temp1) - set(temp2) n'est pas nécessairement égal à set(temp2) - set(temp1). Par exemple :

set([1, 2]) - set([2, 3]) == {1}
set([2, 3]) - set([1, 2]) == {3}

Si le résultat souhaité est d'inclure des éléments uniques aux deux ensembles, la méthode metric_difference() peut être utilisée :

set([1, 2]).symmetric_difference(set([2, 3])) == {1, 3}

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