Python에서 목록 복사

Azaz Farooq 2023년1월30일
  1. copy()메서드를 사용하여 Python에서 목록 복사
  2. 슬라이싱 방법을 사용하여 Python에서 목록 복사
  3. list()함수를 사용하여 Python에서 목록 복사
  4. 리스트 내포 방법을 사용하여 Python에서 목록 복사
  5. copy.copy()메서드를 사용하여 Python에서 목록 복사
  6. 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']

관련 문장 - Python List