Tiefes Kopieren einer Liste in Python

Samyak Jain 30 Januar 2023
  1. Verwenden Sie die Funktion copy.deepcopy(), um eine Liste in Python tief zu kopieren
  2. Verwenden Sie List Comprehensions, um eine Liste in Python tief zu kopieren
Tiefes Kopieren einer Liste in Python

Wir können in Python flache und tiefe Kopien erstellen. Eine tiefe Kopie einer Liste besteht darin, eine neue Liste zu erstellen und dann rekursiv die Kopien der Elemente der ursprünglichen Liste einzufügen. Es bezieht sich auf das Klonen einer Liste, und alle Änderungen, die in der ursprünglichen Liste vorgenommen wurden, wirken sich nicht auf die geklonte Liste aus.

Verwenden Sie die Funktion copy.deepcopy(), um eine Liste in Python tief zu kopieren

Die Funktion deepcopy() aus dem Modul copy wird verwendet, um eine tiefe Kopie der angegebenen Liste zu erstellen. Wenn wir diese Kopie verändern, bleibt der Inhalt der Originalliste gleich und wird nicht verändert.

Zum Beispiel,

import copy

A = [[10, 60], [50, "Hi"], ["Hello", 5, 80]]
B = copy.deepcopy(A)
A[2][0] = "World"
A[0][1] = 10
print("List A is : % s" % (A))
print("List B is : % s" % (B))

Ausgabe:

List A is : [[10, 10], [50, 'Hi'], ['World', 5, 80]]
List B is : [[10, 60], [50, 'Hi'], ['Hello', 5, 80]]

Liste B wird nicht geändert, nachdem ein neuer Wert in Liste A zugewiesen wurde, weil Liste B eine tiefe Kopie von Liste A ist. Liste A und Liste B sind unabhängig voneinander.

Verwenden Sie List Comprehensions, um eine Liste in Python tief zu kopieren

Das List Comprehensions in Python wird verwendet, um neue Listen aus anderen iterierbaren Elementen wie Listen, Tupeln, Strings und mehr zu erstellen. Das List Comprehensions macht den Code einfach und effizient.

Wir werden im Wesentlichen tun, was die Funktion deepcopy() macht und in dieser Methode rekursiv eine neue Kopie der angegebenen Liste erstellen.

Zum Beispiel,

A = [2, 4, 6, 8, 10]
B = [i for i in A]
A[0] = "Hi"
print("List A is : % s" % (A))
print("List B is : % s" % (B))

Ausgabe:

List A is : ['Hi', 4, 6, 8, 10]
List B is : [2, 4, 6, 8, 10]

Wir können diese Methode auch ohne List Comprehensions durchführen und die for-Schleife auf traditionelle Weise verwenden. Es dauert jedoch mehr Codezeilen und mehr Zeit.

Verwandter Artikel - Python List