Weiter zum Inhalt

Python-Liste kopieren: Das solltest du wissen

Verstehe, wie du Listen in Python kopierst. Lerne die Nutzung der Funktionen copy() und list(). Entdecke den Unterschied zwischen Shallow- und Deep-Copy.
Aktualisiert 18. Sept. 2026  · 7 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

Python-Listen sind leistungsfähige Datenstrukturen, mit denen du eine Sammlung von Elementen speicherst. Das Kopieren von Listen ist wichtig, weil du so die Originalliste beibehältst, während du auf der Kopie arbeitest. In diesem Tutorial erkläre ich grundlegende und fortgeschrittene Techniken zum Kopieren von Listen mit praxisnahen Beispielen.

Bevor wir in die Beispiele einsteigen, empfehle ich dir den DataCamp-Kurs Introduction to Python, um die Python-Grundlagen zu lernen, darunter die verschiedenen Python-Datenstrukturen. Auch das Python Cheat Sheet for Beginners ist hilfreich, um Funktionen und Methoden schnell nachzuschlagen.

Python an einem Kopierer

"Python using a copy machine." Bild von Dall-E.

Kurzantwort: So kopierst du eine Liste in Python

Das folgende Beispiel zeigt, wie du mit der Methode copy() eine Liste in Python kopierst. Beachte, dass die Originalliste unverändert bleibt, obwohl du die Kopie änderst. Der Code gibt [1, 2, 3] aus.

# Define the original list
original_list = [1, 2, 3]

# Create a shallow copy of the original list
copied_list = original_list.copy()

# Modify the first element of the copied list
copied_list[0] = 99

print(original_list)
[1, 2, 3]

Weitere Techniken zum Kopieren einer Liste in Python

Bevor wir uns die verschiedenen Methoden ansehen, klären wir kurz, warum wir nicht einfach den Zuweisungsoperator = verwenden. = erstellt nämlich keine Kopie der Liste, sondern nur eine Referenz darauf.

Im folgenden Beispiel verweisen original_list und reference_to_original_list nach der Zuweisung auf dieselbe Liste.

# Create a list called original_list
original_list = [1, 2, 3]

# Create a new reference copied_list that points to the same list as original_list
reference_to_original_list = original_list

Hier wirken sich Änderungen an der vermeintlichen Kopie auf die Originalliste aus – und umgekehrt. Das passiert, weil beide Bezeichner auf denselben Speicherbereich zeigen. Schauen wir uns nun die verschiedenen Möglichkeiten an, eine Liste wirklich zu kopieren.

Mit der Methode copy()

Die eingebaute Methode copy() erstellt eine Shallow-Copy der Liste. Sie ist ab Python 3.3 verfügbar und kopiert nur die oberste Listenebene. Die Syntax siehst du hier:

new_list = original_list.copy()

Im folgenden Beispiel gibt der Code [1, 2, 3, 4] aus.

# Original list with nested structure
original_list = [1, 2, 3, 4]

# Create a shallow copy using the copy() method
shallow_copied_list = original_list.copy()

print(shallow_copied_list)
[1, 2, 3, 4]

Mit dem Konstruktor list()

Der list()-Konstruktor erstellt aus einer bestehenden Liste ein neues Listenobjekt mit allen Elementen der Originalliste. Das ist sinnvoll, wenn die Änderungen an der Kopie die Originalliste nicht beeinflussen sollen. Der folgende Code gibt [1, 2, 3] aus.

# Create a list called original_list
original_list = [1, 2, 3]

# Create a shallow copy of original_list using the list() function
copied_list = list(original_list)

# Modify the first element of copied_list
copied_list[0] = 99

print(original_list)
[1, 2, 3]

Mit List Slicing [:]

Das List Slicing [:] ist eine kompakte Methode, um eine Shallow-Copy zu erstellen. Es ist effizient, weil es in Python auf niedriger Ebene implementiert ist. Die Syntax sieht so aus:

new_list = original_list[:] 

Der folgende Code gibt [1, 2, 3] aus.

# Create a list called original_list
original_list = [1, 2, 3]

# Create a shallow copy of original_list using list slicing
copied_list = original_list[:]

# Modify the first element of copied_list
copied_list[0] = 99

print(original_list)
[1, 2, 3]

In diesem Kontext nutzen wir Slicing, um alle Elemente zu übernehmen. In anderen Fällen kannst du mit Start- und Endindizes Teilsequenzen ausschneiden.

Werde ein ML-Wissenschaftler

Bilde dich in Python weiter, um ein/e Wissenschaftler/in für maschinelles Lernen zu werden.
Kostenloses Lernen Beginnen

Shallow Copy vs. Deep Copy in Python

Den Unterschied zwischen Shallow und Deep Copy zu verstehen, verhindert unerwünschte Seiteneffekte bei deinen Daten.

  • Eine Shallow-Copy kopiert nur die oberste Ebene der Liste. Verschachtelte Listen oder andere veränderliche Objekte bleiben als Referenzen erhalten. Änderungen an diesen Objekten wirken sich deshalb auf Original und Kopie aus.
  • Eine Deep-Copy kopiert alle Elemente rekursiv, inklusive verschachtelter Listen und veränderlicher Objekte. Änderungen in der Kopie haben dadurch keinen Einfluss auf das Original.

Für Shallow-Copies empfehle ich die Funktion copy.copy(), für Deep-Copies copy.deepcopy().

Methode

Shallow Copy

Deep Copy

copy()

list()-Konstruktor

List Slicing [:]

copy.copy()

copy.deepcopy()

So kopierst du verschachtelte Listen in Python

Bei verschachtelten Listen oder komplexeren Datenstrukturen brauchst du passendere Kopiertechniken. Hier sind die gängigen Ansätze.

Mit copy.copy()

Das Modul copy stellt die Funktion copy() bereit, die eine Shallow-Copy erzeugt. Sie ist expliziter als der list()-Konstruktor oder Slicing [:] und kann die Lesbarkeit erhöhen, wenn du klar machen willst, dass du flach kopierst.

Im Beispiel unten wird eine verschachtelte Liste flach kopiert. Der Code gibt [1, 2, [99, 4]] aus, weil die verschachtelte Liste weiterhin dasselbe Objekt ist.

# Import the copy module to access the copy.copy() function
import copy

# Original list with nested structure
original_list = [1, 2, [3, 4]]

# Create a shallow copy using copy.copy()
shallow_copied_list = copy.copy(original_list)

# Modifying the nested list in the copied list
shallow_copied_list[2][0] = 99

print(original_list)
[1, 2, [99, 4]]

Mit copy.deepcopy()

Auch die Funktion deepcopy() kommt aus dem Modul copy. Sie erstellt eine Deep-Copy der Liste und aller verschachtelten Objekte. Das ist besonders wichtig bei veränderlichen Objekten, damit Änderungen in der Kopie das Original nicht berühren.

Der folgende Code gibt [1, 2, [3, 4]] aus.

# Import the copy module to access the copy.deepcopy() function
import copy

# Original list with nested structure
original_list = [1, 2, [3, 4]]

# Create a deep copy using copy.deepcopy()
deep_copied_list = copy.deepcopy(original_list)

# Modifying the nested list in the copied list
deep_copied_list[2][0] = 99

print(original_list)
[1, 2, [3, 4]]

Fazit

Zu wissen, wie man Listen in Python kopiert, ist entscheidend für effiziente Datenmanipulation. In diesem Tutorial hast du verschiedene Methoden kennengelernt und den Unterschied zwischen Shallow und Deep Copy gesehen. Als Data Analyst solltest du je nach Anforderung die passende Technik wählen. Übe die gezeigten Methoden, um ein Gefühl für ihre Einsatzszenarien zu bekommen.

Starte mit dem DataCamp Python Programming Skill Track, um deine Programmierkompetenzen mit erprobten Techniken auszubauen. Schau dir außerdem unsere Career Tracks Python Developer und Data Analyst with Python an, um praxisnahe, gefragte Kompetenzen weiterzuentwickeln.

Werde ein ML-Wissenschaftler

Beherrsche Python, um ein Wissenschaftler für maschinelles Lernen zu werden

Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Ich verfasse Artikel, die Datenwissenschaft und Analytik vereinfachen und leicht verständlich und zugänglich machen.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Shallow Copy und Deep Copy?

Bei einer Shallow-Copy entsteht eine neue Liste, deren Elemente aber auf dieselben Objekte zeigen wie in der Originalliste. Änderungen an veränderlichen Objekten wirken sich daher auf Original und Kopie aus. Eine Deep-Copy erstellt eine neue Liste und kopiert alle Werte rekursiv, sodass Änderungen an verschachtelten Objekten in der Kopie das Original nicht beeinflussen.

Welche Methoden gibt es, um in Python eine Shallow-Copy zu erzeugen?

Du kannst eine Shallow-Copy mit der Methode copy(), per List Slicing [:], mit dem list()-Konstruktor oder mit der Funktion copy() aus dem Modul copy erstellen.

Wie erstellst du in Python eine Deep-Copy einer Liste?

Eine Deep-Copy einer Liste erstellst du mit der Funktion deepcopy() aus dem Modul copy.

Themen
Python
Datenanalyse

Lerne Python mit DataCamp

Kurs

Einführung in Python

4 Std.
7M
Lerne in nur vier Stunden die Grundlagen der Datenanalyse mit Python und entdecke beliebte Python-Pakete.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow