Python에서 목록 복사
-
copy()
메서드를 사용하여 Python에서 목록 복사 - 슬라이싱 방법을 사용하여 Python에서 목록 복사
-
list()
함수를 사용하여 Python에서 목록 복사 - 리스트 내포 방법을 사용하여 Python에서 목록 복사
-
copy.copy()
메서드를 사용하여 Python에서 목록 복사 - Python 리스트 딥 카피와 얕은 복사
목록은 Python에서 사용할 수있는 유연한 데이터 유형이며 쉼표로 구분 된 값으로 대괄호[]
로 묶여 있습니다. 목록의 값은 다른 데이터 유형일 수 있습니다. 목록 인덱싱은 0에서 시작하며 연결 및 분할 할 수 있습니다. 목록 값은 다른 내장 함수를 사용하여 새 목록 값으로 복사 할 수 있습니다.
이 기사에서는 Python에서 목록을 복사하는 다양한 방법을 소개합니다.
copy()
메서드를 사용하여 Python에서 목록 복사
파이썬 목록을 복사하는 가장 직접적인 방법은copy()
메소드를 사용하는 것입니다. 목록을 복사하려는 시나리오를 찾을 수 있습니다. 등호 =
는 목록의 복제본을 생성하는 데 사용할 수 있습니다. 그러나 새 목록은 기존 목록에 연결됩니다. 즉, 원래 목록을 업데이트하면 새 목록도 변경됩니다. 새 목록은 이전 목록과 유사한 항목을 나타냅니다.
기존 목록의 사본은 list copy()
메소드에 의해 생성됩니다. copy()
메소드는 매개 변수를 사용하지 않습니다.
과일 이름을 Python 목록으로 예로 들어 보겠습니다. 새 목록은 이전 목록에있는 모든 과일 이름을 복사합니다. 예제 코드는 다음과 같습니다.
fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = fruits_spring.copy()
print(fruits_summer)
출력:
['carrots', 'kiwi', 'grapes', 'cherry']
슬라이싱 방법을 사용하여 Python에서 목록 복사
Python에서 슬라이싱은 목록에서 객체를 추출하는 데 사용하는 방법입니다. 슬라이싱 방법을 사용하여 개별 개체, 여러 항목 또는 목록 내에 포함 된 모든 항목을 검색 할 수 있습니다.
슬라이싱을 사용하여 목록을 복사하는 방법을 설명하기 위해 위의 예를 사용하겠습니다.
전체 예제 코드는 다음과 같습니다.
fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = fruits_spring[:]
print(fruits_summer)
출력:
['carrots', 'kiwi', 'grapes', 'cherry']
대괄호 ([:])로 묶인 콜론 인 복제 형식을 사용합니다. 이 프로세스는 이전 목록의 복제본을 생성합니다.
list()
함수를 사용하여 Python에서 목록 복사
list()
함수를 사용하여 파이썬에서 목록의 사본을 생성 할 수도 있습니다. list()
함수는 하나의 매개 변수, 즉 목록으로 변환하려는 객체를 사용합니다.
이 접근 방식을 보여주기 위해 과일 스탠드의 예를 사용하겠습니다.
fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = list(fruits_spring)
print(fruits_summer)
출력:
['carrots', 'kiwi', 'grapes', 'cherry']
리스트 내포 방법을 사용하여 Python에서 목록 복사
이 접근법은 목록 이해를 사용합니다. for
루프에 의해 기존의 모든 목록 요소를 반복하고 새 목록 요소를 추가합니다.
전체 예제 코드는 다음과 같습니다.
fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = [i for i in fruits_spring]
print(fruits_summer)
출력:
['carrots', 'kiwi', 'grapes', 'cherry']
copy.copy()
메서드를 사용하여 Python에서 목록 복사
또한copy
모듈의copy()
메소드를 사용하여 Python 목록을 복사 할 수 있습니다.
완전한 예제 코드는 다음과 같습니다.
import copy
fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = copy.copy(fruits_spring)
print(fruits_summer)
출력:
['carrots', 'kiwi', 'grapes', 'cherry']
Python 리스트 딥 카피와 얕은 복사
위에서 소개 한 모든 방법은 얕은 복사본입니다. 단순 복사는 목록 요소가 변경 가능하고이 요소가 원래 목록에서 수정되면이 수정이 복사 된 목록에도 반영됨을 의미합니다. 단순 복사는 포인터 또는 목록 요소에 대한 참조 만 복사합니다.
original_list = [["carrots", "apple"], "kiwi", "grapes", "cherry"]
print("The original list is")
print(original_list)
copied_list = original_list.copy()
original_list[0][0] = "banana"
original_list[0][1] = "apple"
original_list[1] = "orange"
print("The original list after modification is")
print(original_list)
print("The copied list is")
print(copied_list)
출력:
The original list is
[['carrots', 'apple'], 'kiwi', 'grapes', 'cherry']
The original list after modification is
[['banana', 'apple'], 'orange', 'grapes', 'cherry']
The copied list is
[['banana', 'apple'], 'kiwi', 'grapes', 'cherry']
원래 목록의 첫 번째 요소도 목록이며 변경 가능합니다. 내용을 변경하면 복사 된 목록의 해당 요소가 수정됩니다. 한편, 원본 목록의 두 번째 요소는 변경 불가능한 개체이므로 변경 사항이 복사 된 목록에 반영되지 않습니다.
얕은 복사와 달리 전체 복사는 원래 목록의 개체를 새 목록에 재귀 적으로 복사합니다. 따라서 원본 목록의 수정 사항은 복사 된 목록에 반영되지 않습니다. copy
모듈의deepcopy()
메소드는 전체 복사 작업을 수행합니다.
import copy
original_list = [["carrots", "apple"], "kiwi", "grapes", "cherry"]
print("The original list is")
print(original_list)
copied_list = copy.deepcopy(original_list)
original_list[0] = ["banana", "apple"]
original_list[1] = "orange"
print("The original list after modification is")
print(original_list)
print("The copied list is")
print(copied_list)
출력:
The original list is
[['carrots', 'apple'], 'kiwi', 'grapes', 'cherry']
The original list after modification is
[['banana', 'apple'], 'orange', 'grapes', 'cherry']
The copied list is
[['carrots', 'apple'], 'kiwi', 'grapes', 'cherry']