Python에서 목록 심층 복사

Samyak Jain 2023년1월30일
  1. copy.deepcopy() 함수를 사용하여 Python에서 목록 전체 복사
  2. 목록 이해를 사용하여 Python에서 목록 심층 복사
Python에서 목록 심층 복사

우리는 파이썬으로 얕고 깊은 복사본을 만들 수 있습니다. 목록의 전체 복사본은 새 목록을 만든 다음 원래 목록 요소의 복사본을 재귀적으로 삽입하는 것입니다. 목록을 복제하는 것을 의미하며 원본 목록에서 변경한 사항은 복제된 목록에 영향을 미치지 않습니다.

copy.deepcopy() 함수를 사용하여 Python에서 목록 전체 복사

copy 모듈의 deepcopy() 함수는 지정된 목록의 전체 복사본을 만드는 데 사용됩니다. 이 사본을 변경하면 원본 목록의 내용이 동일하게 유지되고 변경되지 않습니다.

예를 들어,

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))

출력:

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

목록 B는 목록 A의 전체 복사본이기 때문에 목록 B는 목록 A에 새 값이 할당된 후 수정되지 않습니다. 목록 A와 목록 B는 서로 독립적입니다.

목록 이해를 사용하여 Python에서 목록 심층 복사

Python의 목록 이해는 목록, 튜플, 문자열 등과 같은 다른 반복 가능한 항목에서 새 목록을 만드는 데 사용됩니다. 목록 이해는 코드를 간단하고 효율적으로 만듭니다.

본질적으로 deepcopy() 함수가 수행하는 작업을 수행하고 이 메서드에서 주어진 목록의 새 복사본을 재귀적으로 생성합니다.

예를 들어,

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))

출력:

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

목록 이해 없이 이 방법을 수행하고 전통적인 방식으로 for 루프를 사용할 수도 있습니다. 그러나 더 많은 코드 줄과 더 많은 시간이 필요합니다.

관련 문장 - Python List