Python에서 문자열들을 끝에서 K 길이만큼 잘라낸 접미사(suffix)를 기준으로 그룹화해야 하는 경우가 있습니다. 이럴 때는 간단한 반복문과 함께 'try', 'except' 블록을 활용하면 손쉽게 구현할 수 있습니다.
예제 코드
아래는 문자열 목록을 접미사 기준으로 그룹화하는 전체 예제입니다.
my_list = ['peek', "leak", 'creek', "weak", "good", 'week', "wood", "sneek"]
print("The list is :")
print(my_list)
K = 3
print("The value of K is ")
print(K)
my_result = {}
for element in my_list:
suff = element[-K : ]
try:
my_result[suff].append(element)
except:
my_result[suff] = [element]
print("The resultant list is :")
print(my_result)
실행 결과
The list is :
['peek', 'leak', 'creek', 'weak', 'good', 'week', 'wood', 'sneek']
The value of K is
3
The resultant list is :
{'ood': ['good', 'wood'], 'eak': ['leak', 'weak'], 'eek': ['peek', 'creek', 'week', 'sneek']}
코드 설명
먼저 문자열 리스트를 정의하고 콘솔에 출력합니다.
그룹화의 기준이 되는 값 'K'를 정의한 뒤 콘솔에 출력합니다.
그룹화된 결과를 저장할 빈 딕셔너리를 하나 생성합니다.
반복문을 통해 리스트의 각 요소를 하나씩 순회합니다.
element[-K:]슬라이싱을 사용해 각 문자열의 마지막 K 글자(접미사)를 추출하여 변수에 저장합니다.'try' 블록에서는 해당 접미사가 이미 딕셔너리에 존재할 경우, 기존 리스트에 현재 요소를 추가(append)합니다.
'except' 블록은 해당 접미사 키가 아직 없어 오류가 발생했을 때 실행되며, 새 키를 만들고 요소를 리스트 형태로 할당합니다.
모든 요소가 처리되면 접미사별로 묶인 결과 딕셔너리를 콘솔에 출력합니다.
이 방식은 별도의 외부 라이브러리 없이 Python 기본 문법만으로 접미사 기반 그룹화를 구현할 수 있다는 장점이 있습니다. 다만 collections.defaultdict나 dict.setdefault() 메서드를 사용하면 try-except 없이도 더 간결하게 동일한 결과를 얻을 수 있습니다.