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

접미사를 활용해 K 길이 기준으로 문자열을 그룹화하는 Python 프로그램


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.defaultdictdict.setdefault() 메서드를 사용하면 try-except 없이도 더 간결하게 동일한 결과를 얻을 수 있습니다.