Python으로 데이터를 다룰 때 리스트(list)에서 요소를 추가하거나 제거하는 작업은 매우 자주 발생합니다. Python은 표준 라이브러리 차원에서 이를 효율적으로 처리할 수 있는 다양한 방법을 제공하며, 외부 라이브러리를 활용할 수도 있습니다. 이 글에서는 리스트의 앞쪽에 요소를 추가하고 뒤쪽에서 요소를 제거하는 두 가지 대표적인 방법을 소개합니다.
1. + 연산자 사용하기
가장 간단한 방법은 슬라이싱과 더하기(+) 연산자를 조합하는 것입니다. 새로운 요소를 리스트 맨 앞에 붙이고, [:-1] 슬라이싱을 통해 마지막 요소를 제외한 나머지 요소들로 새로운 리스트를 만듭니다.
예제 코드
values = ['Tue','wed','Thu','Fri','Sat','Sun']
print("The given list : " ,values)
# 새 요소는 맨 앞에 추가되고, 기존의 마지막 요소는 제거됩니다.
result = ['Mon'] + values[:-1]
print("The values after appending and popping : " + str(result))위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
The given list : ['Tue', 'wed', 'Thu', 'Fri', 'Sat', 'Sun'] The values after appending and popping : ['Mon', 'Tue', 'wed', 'Thu', 'Fri', 'Sat']
2. collections 모듈의 deque 사용하기
두 번째 방법은 collections 모듈에서 제공하는 deque(double-ended queue)를 활용하는 것입니다. deque는 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조로, appendleft(), append() 같은 메서드로 요소를 추가하고 pop() 메서드로 요소를 제거할 수 있습니다. 특히 대용량 데이터를 다룰 때 리스트보다 양방향 연산 성능이 뛰어나다는 장점이 있습니다.
아래 예제에서는 왼쪽 끝에 요소를 추가(appendleft)하고 오른쪽 끝에서 요소를 제거(pop)합니다.
예제 코드
import collections
a = collections.deque( ['Tue','wed','Thu','Fri','Sat','Sun'])
print('Original List: ',a)
a.appendleft('Mon')
a.pop()
print('New list: ',a)위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Original List: deque(['Tue', 'wed', 'Thu', 'Fri', 'Sat', 'Sun']) New list: deque(['Mon', 'Tue', 'wed', 'Thu', 'Fri', 'Sat'])
정리
간단한 일회성 작업이라면 슬라이싱과 + 연산자를 사용하는 방법이 직관적이고 편리합니다. 반면, 앞뒤 양쪽에서 빈번하게 요소를 추가·제거해야 하는 상황이라면 deque를 사용하는 것이 성능 면에서 훨씬 유리합니다. 상황에 맞는 방법을 선택하여 효율적으로 리스트를 관리해 보세요.