Python bietet verschiedene Möglichkeiten, Listen zu kombinieren, abhängig davon, ob doppelte Einträge beibehalten werden sollen und ob die Reihenfolge wichtig ist. Diese Anleitung untersucht verschiedene Techniken zur effizienten Behandlung von Listenvereinigungen.
Inhaltsverzeichnis
- Vereinigung mit doppelten Elementen
- Sortierte Vereinigung
- Vereinigung ohne doppelte Elemente
- Vereinigung mehrerer Listen
Vereinigung mit doppelten Elementen
Die einfachste Möglichkeit, zwei Listen zu kombinieren und alle Elemente mit ihren Wiederholungen zu erhalten, ist die Verwendung des +
-Operators:
list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]
union_list = list1 + list2
print(union_list) # Ausgabe: [1, 2, 2, 3, 3, 4, 2]
Sortierte Vereinigung
Für eine sortierte Vereinigung kombinieren Sie den +
-Operator mit der Funktion sorted()
:
list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]
union_list = sorted(list1 + list2)
print(union_list) # Ausgabe: [1, 2, 2, 2, 3, 3, 4]
Vereinigung ohne doppelte Elemente
Um eine Vereinigung ohne Duplikate zu erstellen, verwenden Sie Sets:
list1 = [1, 2, 2, 3]
list2 = [3, 4, 2]
union_set = set(list1) | set(list2) # oder set(list1).union(list2)
union_list = list(union_set) # Falls nötig, wieder in eine Liste konvertieren
print(union_list) # Ausgabe: [1, 2, 3, 4] (Reihenfolge kann variieren)
Sets entfernen automatisch Duplikate. Beachten Sie, dass die Reihenfolge der Elemente in der resultierenden Liste möglicherweise nicht mit der in den ursprünglichen Listen übereinstimmt.
Vereinigung mehrerer Listen
Für mehr als zwei Listen bleibt der Set-Ansatz effizient:
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) # Ausgabe: [1, 2, 3, 4, 5, 6] (Reihenfolge kann variieren)
# Skalierbarere Lösung mit 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) # Ausgabe: [1, 2, 3, 4, 5, 6] (Reihenfolge kann variieren)
Die Funktion reduce
bietet eine prägnantere und skalierbarere Lösung für viele Listen. Denken Sie daran, dass die Reihenfolge der Elemente möglicherweise nicht erhalten bleibt; verwenden Sie sorted()
, wenn die Reihenfolge wichtig ist.