리스트(list)는 순서가 있고 변경 가능한 자료구조입니다. 파이썬에서 리스트는 대괄호([])를 사용해 작성하며, 인덱스 번호를 통해 각 항목에 접근할 수 있습니다. 음수 인덱싱은 뒤에서부터 접근하는 방식으로, -1은 마지막 항목을 가리킵니다. 또한 시작 인덱스와 끝 인덱스를 지정해 특정 범위의 항목만 잘라낼 수 있는데, 이 경우 지정된 항목들로 구성된 새로운 리스트가 반환됩니다.
삼중항(Triplet)이란?
삼중항이란 리스트에서 연속된 3개의 요소를 하나의 그룹으로 묶은 것을 의미합니다. 예를 들어 8개의 단어로 이루어진 리스트가 있다면, 시작점을 한 칸씩 이동하면서 3개씩 묶어 총 6개의 삼중항을 만들 수 있습니다. 아래에서는 두 가지 방법을 소개합니다.
방법 1: 리스트 컴프리헨션 사용
리스트 컴프리헨션과 슬라이싱을 활용하면 코드 몇 줄로 간결하게 삼중항을 생성할 수 있습니다. range(len(list_of_words) - 2)로 범위를 지정하는 이유는 마지막에서 두 번째 요소까지만 삼중항의 시작점이 될 수 있기 때문입니다.
# 단어 리스트에서 삼중항 만들기
# 단어 리스트 초기화
list_of_words = ['I', 'am', 'Vishesh', 'and', 'I', 'like', 'Python', 'programming']
# 리스트 컴프리헨션 사용
List = [list_of_words[i:i + 3]
for i in range(len(list_of_words) - 2)]
# 결과 출력
print(List)
방법 2: 반복문(for문) 사용
초보자에게 더 직관적인 방법은 for 반복문을 사용하는 것입니다. 임시 리스트(temp)를 만들어 현재 위치부터 3개의 요소를 차례로 추가하고, 완성된 삼중항을 결과 리스트에 저장하는 방식입니다.
# 단어 리스트 초기화
list_of_words = ['I', 'am', 'Vishesh', 'and', 'I', 'like', 'Python', 'programming']
# 출력 리스트 초기화
out = []
# 리스트 길이 확인
length = len(list_of_words)
# 반복문 사용
for z in range(0, length - 2):
# 3개의 단어를 담을 임시 리스트 생성
temp = []
temp.append(list_of_words[z])
temp.append(list_of_words[z + 1])
temp.append(list_of_words[z + 2])
out.append(temp)
# 결과 출력
print(out)
출력 결과
[['I', 'am', 'Vishesh'], ['am', 'Vishesh', 'and'], ['Vishesh', 'and', 'I'], ['and', 'I', 'like'], ['I', 'like', 'Python'], ['like', 'Python', 'programming']]
[['I', 'am', 'Vishesh'], ['am', 'Vishesh', 'and'], ['Vishesh', 'and', 'I'], ['and', 'I', 'like'], ['I', 'like', 'Python'], ['like', 'Python', 'programming']]
정리
두 방법 모두 동일한 결과를 반환하지만, 리스트 컴프리헨션을 사용하는 첫 번째 방법이 코드가 짧고 간결하여 파이썬다운(Pythonic) 스타일로 선호됩니다. 반면 반복문 방식은 로직이 단계별로 드러나기 때문에 초보자가 처리 흐름을 이해하는 데 유리합니다. 상황에 맞게 적절한 방법을 선택해 사용하면 됩니다.