Wie erstellt man eine flache Kopie einer Liste in Python?

Wie man eine flache Kopie einer Liste in Python erstellt

Wenn Sie in Python mit Listen arbeiten, haben Sie häufig das Bedürfnis, Kopien von Listen zu erstellen. Dies kann insbesondere dann nützlich sein, wenn Sie Änderungen an einer Kopie einer Liste vornehmen möchten, ohne die Originaldaten zu beeinflussen.

Die richtige Methode zur Erstellung einer flachen Kopie einer Liste in Python lautet list.copy(). Im Gegensatz zur Methode list.deepcopy(), die eine tiefe Kopie einer Liste erstellt (inklusive der Erstellung neuer Kopien aller Unterobjekte), erzeugt list.copy() eine flache Kopie. Das bedeutet, dass die Methode eine neue Liste erzeugt, die auf die gleichen Elemente verweist wie die Originalliste.

Hier ist ein einfaches Beispiel, wie man die list.copy() Methode in Python benutzt:

original_list = [1, 2, 3, 4, 5]
copy_list = original_list.copy()

print(copy_list)  # Gibt aus: [1, 2, 3, 4, 5]

In diesem Beispiel erzeugt list.copy() eine flache Kopie der original_list. Wenn Sie dann Änderungen an der copy_list vornehmen, bleibt die original_list unverändert.

Es ist wichtig zu beachten, dass eine flache Kopie nicht immer die optimale Lösung ist. Bei Listen, die ihrerseits wieder Listen oder andere komplexe Objekte enthalten (sogenannte "verschachtelte Listen"), werden bei einer flachen Kopie nur die obersten Elemente kopiert. Die Unterlisten bleiben in beiden Listen (der Kopie und dem Original) dieselben. Wenn sich also etwas in einer der Unterlisten ändert, ändert sich dies in beiden Listen, da beide auf dasselbe Objekt verweisen.

Im Allgemeinen ist es eine gute Praxis, immer zu bedenken, ob eine flache oder eine tiefe Kopie für Ihr spezielles Anwendungsszenario am besten geeignet ist. Beachten Sie auch, dass die direkte Zuweisung einer Liste zu einer anderen (z.B. list2 = list1) keine Kopie erstellt. In diesem Fall verweisen beide Listen auf denselben Speicherplatz, so dass Änderungen an einer Liste sich auch auf die andere auswirken.

Finden Sie das nützlich?