Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 리스트 복제·복사하기: 슬라이싱 연산자 활용법

이 프로그램은 사용자로부터 입력받은 리스트를 복사(copy)하거나 복제(clone)하는 방법을 다룹니다. 여기서는 슬라이싱(slicing) 기법을 사용하는데, 이 기법은 리스트 자체의 사본을 참조와 함께 생성하는 방식입니다. 이 과정을 흔히 클로닝(cloning)이라고 부릅니다.

알고리즘

리스트를 복제하는 절차는 다음과 같이 간단합니다.

  1. 1단계: 배열(리스트)에 들어갈 요소들을 입력받습니다.
  2. 2단계: 슬라이싱 연산자(:)를 사용하여 리스트를 복제합니다.

예제 코드

# 파이썬 프로그램 - 슬라이스 연산자를 이용한 리스트 복사/복제
def copyandcloning(cl): 
   copylist = cl[:] 
   return copylist 

# 드라이버 코드 
A = list()
n1 = int(input("리스트의 크기를 입력하세요 ::"))
print("리스트의 요소를 입력하세요 ::")
for i in range(int(n1)):
   k = int(input(""))
   A.append(k)
clon = copyandcloning(A) 
print("복제 전 원본 리스트:", A) 
print("복제 후 리스트:", clon) 

실행 결과

리스트의 크기를 입력하세요 ::6
리스트의 요소를 입력하세요 ::
33
22
11
67
56
90
복제 전 원본 리스트: [33, 22, 11, 67, 56, 90]
복제 후 리스트: [33, 22, 11, 67, 56, 90]

핵심 포인트 정리

  • cl[:]처럼 시작 인덱스와 끝 인덱스를 모두 생략한 슬라이싱은 리스트 전체의 얕은 복사본(shallow copy)을 만듭니다.
  • 단순 대입(copylist = cl)은 새로운 리스트를 만드는 것이 아니라 같은 객체를 참조할 뿐이므로, 한쪽을 수정하면 다른 쪽도 함께 변경됩니다.
  • 슬라이싱 외에도 list.copy(), list() 생성자, copy.deepcopy() 등의 방법으로 리스트를 복제할 수 있습니다. 중첩된 리스트가 있다면 깊은 복사(deep copy)를 사용해야 합니다.