Python Programming

Maîtriser les Unions de Listes en Python

Spread the love

Python offre plusieurs manières de combiner des listes, selon que vous souhaitiez conserver les entrées dupliquées et que l’ordre importe. Ce guide explore diverses techniques pour gérer efficacement les unions de listes.

Table des matières

Union avec éléments dupliqués

La manière la plus simple de combiner deux listes, en préservant tous les éléments et leurs répétitions, est d’utiliser l’opérateur + :


list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]

union_list = list1 + list2
print(union_list)  # Sortie : [1, 2, 2, 3, 3, 4, 2]

Union triée

Pour une union triée, combinez l’opérateur + avec la fonction sorted() :


list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]

union_list = sorted(list1 + list2)
print(union_list)  # Sortie : [1, 2, 2, 2, 3, 3, 4]

Union sans éléments dupliqués

Pour créer une union sans doublons, utilisez des ensembles :


list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]

union_set = set(list1) | set(list2)  # ou set(list1).union(list2)
union_list = list(union_set)  # Conversion en liste si nécessaire
print(union_list)  # Sortie : [1, 2, 3, 4] (l'ordre peut varier)

Les ensembles suppriment automatiquement les doublons. Notez que l’ordre des éléments dans la liste résultante peut différer de celui des listes originales.

Union de plusieurs listes

Pour plus de deux listes, l’approche par ensembles reste efficace :


list1 = [1, 2, 3]
list2 = [3, 4, 5]
list3 = [5, 6, 1]

union_set = set(list1) | set(list2) | set(list3)
union_list = list(union_set)
print(union_list)  # Sortie : [1, 2, 3, 4, 5, 6] (l'ordre peut varier)

#Solution plus évolutive utilisant reduce:
from functools import reduce
union_list = list(reduce(lambda x,y: x | y, [set(l) for l in [list1, list2, list3]]))
print(union_list) # Sortie : [1, 2, 3, 4, 5, 6] (l'ordre peut varier)

La fonction reduce fournit une solution plus concise et évolutive pour de nombreuses listes. N’oubliez pas que l’ordre des éléments peut ne pas être conservé ; utilisez sorted() si l’ordre est important.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *