파이썬에서 한 배열(리스트)의 모든 요소를 다른 배열로 복사해야 하는 경우가 자주 있습니다. 가장 기본적인 방법은 원본 리스트와 같은 길이의 'None' 요소로 채워진 새로운 리스트를 먼저 생성한 뒤, for 반복문으로 각 요소를 순회하면서 '=' 연산자를 사용해 값을 하나씩 할당하는 것입니다.
아래는 실제 구현 예시입니다.
예제 코드
my_list_1 = [34, 56, 78, 90, 11, 23]
my_list_2 = [None] * len(my_list_1)
for i in range(0, len(my_list_1)):
my_list_2[i] = my_list_1[i]
print("원본 리스트 : ")
for i in range(0, len(my_list_1)):
print(my_list_1[i])
print()
print("복사된 새 리스트 : ")
for i in range(0, len(my_list_2)):
print(my_list_2[i])
출력 결과
원본 리스트 : 34 56 78 90 11 23 복사된 새 리스트 : 34 56 78 90 11 23
코드 설명
먼저 복사할 원본 리스트를 정의합니다.
'None' 값으로 채워진, 원본과 같은 길이의 새로운 리스트를 생성합니다.
for 반복문으로 인덱스를 순회하며 첫 번째 리스트의 요소를 두 번째 리스트에 하나씩 할당합니다.
이렇게 만들어진 두 번째 리스트가 바로 복사된 리스트입니다.
마지막으로 두 리스트의 내용을 콘솔에 출력하여 결과를 확인합니다.
참고: 더 간단한 복사 방법
실무에서는 위와 같은 반복문 대신 슬라이싱이나 copy() 메서드를 사용하는 것이 더 간결하고 효율적입니다.
# 슬라이싱 사용 my_list_2 = my_list_1[:] # copy() 메서드 사용 my_list_2 = my_list_1.copy()
다만 이 방법들은 얕은 복사(shallow copy)에 해당하므로, 중첩된 리스트까지 완전히 독립적으로 복사하려면 copy 모듈의 deepcopy() 함수를 사용해야 합니다.