리스트(List)는 파이썬에서 가장 널리 사용되는 자료구조입니다. 프로그래밍을 하다 보면 기존 리스트에 새로운 요소를 추가해야 하는 상황이 자주 발생하는데, 이를 리스트 확장이라고 합니다. 파이썬에서는 다양한 방식으로 리스트를 확장할 수 있으며, 각 방법마다 특징과 용도가 조금씩 다릅니다.
이번 글에서는 파이썬에서 리스트를 확장할 수 있는 대표적인 5가지 방법을 코드 예제와 함께 살펴보겠습니다.
1. 더하기(+) 연산자 사용하기
가장 직관적인 방법은 + 연산자를 사용하는 것입니다. 두 개의 리스트를 더하면 하나의 새로운 리스트가 생성되며, 변수에 값을 할당하듯이 결과를 저장할 수 있습니다.
예제 코드
list = ['Mon','Tue','Wed'] list = list + ['Thu','Fri'] print(list)
실행 결과
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
2. 슬라이싱(Slicing) 활용하기
슬라이싱을 이용하면 리스트 끝에 요소를 추가할 수 있습니다. len() 함수로 리스트의 길이를 구한 뒤, 그 위치부터 끝까지의 범위에 새 리스트의 값을 할당하는 방식입니다.
예제 코드
list = ['Mon','Tue','Wed'] list[len(list):] = ['Thu','Fri'] print(list)
실행 결과
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
3. append() 함수 사용하기
append() 함수는 리스트 맨 뒤에 요소를 하나씩 추가할 때 사용합니다. 주의할 점은 다른 리스트를 append하면 해당 리스트가 통째로 하나의 요소로 들어가 중첩 리스트(nested list)가 된다는 것입니다.
예제 코드
list = ['Mon','Tue','Wed']
list.append('Thu')
list.append('Fri')
list.append(['sat','sun'])
print(list)실행 결과
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', ['sat', 'sun']]
출력 결과를 보면 마지막에 ['sat', 'sun']이 별개의 리스트 형태로 포함된 것을 확인할 수 있습니다.
4. extend() 함수 사용하기
extend()는 append와 비슷하지만 결정적인 차이가 있습니다. 다른 리스트를 전달하면 그 요소들이 개별적으로 풀려서 기존 리스트에 합쳐지기 때문에, 중첩 리스트가 생기지 않습니다.
예제 코드
list1 = ['Mon','Tue','Wed'] list2 = ['Thu','Fri','Sat'] list1.extend(list2) print(list1)
실행 결과
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
5. chain() 함수 사용하기
itertools 모듈의 chain() 함수를 사용하면 여러 개의 리스트를 한 번에 연결할 수 있습니다. 두 개 이상의 리스트도 손쉽게 하나의 최종 리스트로 합칠 수 있다는 장점이 있습니다.
예제 코드
from itertools import chain list1 = ['Mon','Tue','Wed'] list2 = ['Thu','Fri'] list3 = ['Sat','Sun'] list4 = (list(chain(list1, list2,list3))) print(list4)
실행 결과
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
마무리
지금까지 파이썬에서 리스트를 확장하는 5가지 방법을 알아보았습니다. 정리하면 다음과 같습니다.
- + 연산자: 새로운 리스트를 만들어 할당하는 간단한 방식
- 슬라이싱: 인덱스 범위에 값을 할당하여 확장
- append(): 요소를 하나씩 추가하며, 리스트를 넣으면 중첩 리스트가 됨
- extend(): 다른 리스트의 요소를 개별적으로 펼쳐서 추가
- chain(): 여러 개의 리스트를 한 번에 연결
상황에 맞는 적절한 방법을 선택하면 더 깔끔하고 효율적인 파이썬 코드를 작성할 수 있습니다.