반응형
파이썬에서 리스트를 복사하는 방법은 여러 가지가 있습니다.
각 방법은 특정 상황에 따라 적합할 수 있습니다.
다음은 리스트를 복사하는 몇 가지 주요 방법입니다:
1. 얕은 복사 (Shallow Copy)
1.1. 슬라이싱을 이용한 복사
슬라이싱을 사용하면 리스트의 얕은 복사를 만들 수 있습니다.
original_list = [1, 2, 3, 4, 5]
copied_list = original_list[:]
print(copied_list) # [1, 2, 3, 4, 5]
1.2. list()
함수를 이용한 복사
list()
함수를 사용하여 리스트를 복사할 수 있습니다.
original_list = [1, 2, 3, 4, 5]
copied_list = list(original_list)
print(copied_list) # [1, 2, 3, 4, 5]
1.3. copy
모듈의 copy()
메서드를 이용한 복사
copy
모듈의 copy()
메서드를 사용하여 리스트를 복사할 수 있습니다.
import copy
original_list = [1, 2, 3, 4, 5]
copied_list = copy.copy(original_list)
print(copied_list) # [1, 2, 3, 4, 5]
2. 깊은 복사 (Deep Copy)
깊은 복사는 리스트 내의 모든 객체를 재귀적으로 복사합니다. 이는 리스트가 중첩된 구조일 때 특히 유용합니다.
2.1. copy
모듈의 deepcopy()
메서드를 이용한 복사
copy
모듈의 deepcopy()
메서드를 사용하여 깊은 복사를 할 수 있습니다.
import copy
original_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
deep_copied_list = copy.deepcopy(original_list)
print(deep_copied_list) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
3. 리스트 컴프리헨션을 이용한 복사
리스트 컴프리헨션을 사용하여 리스트를 복사할 수 있습니다. 이는 얕은 복사를 만듭니다.
original_list = [1, 2, 3, 4, 5]
copied_list = [item for item in original_list]
print(copied_list) # [1, 2, 3, 4, 5]
4. copy()
메서드를 이용한 복사 (Python 3.3+)
Python 3.3부터 리스트 객체에 copy()
메서드가 추가되었습니다.
original_list = [1, 2, 3, 4, 5]
copied_list = original_list.copy()
print(copied_list) # [1, 2, 3, 4, 5]
3. 요약
- 얕은 복사: 슬라이싱(
[:]
),list()
,copy.copy()
, 리스트 컴프리헨션,copy()
메서드 - 깊은 복사:
copy.deepcopy()
각 방법은 복사의 깊이에 따라 달라지며, 얕은 복사는 리스트의 상위 레벨 요소만 복사하는 반면, 깊은 복사는 모든 중첩된 요소까지 복사합니다.
사용자의 필요에 따라 적절한 방법을 선택하면 됩니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 리스트 slicing 으로 데이터 가져오기 (0) | 2024.07.04 |
---|---|
[ Python ] 양수/음수 인덱스, enumerate 사용하기 (0) | 2024.07.04 |
[ Python ] 리스트 생성하고 사용하기 (0) | 2024.07.03 |
[ Python ] 문자열의 자리 맞춤하기 (0) | 2024.06.30 |
[ Python ] 문자열에서 앞, 뒤 문자 제거하기 (0) | 2024.06.30 |