리스트에서 특정 접미사로 끝나는 요소들을 기준으로 문자열을 선택적으로 연결해야 하는 경우가 있습니다. 이를 선택적 연속 접미사 조인(selective consecutive suffix join)이라고 하며, 간단한 반복문과 endswith 메서드, append 메서드를 활용하면 손쉽게 구현할 수 있습니다.
예제 코드
다음은 선택적 연속 접미사 조인을 구현한 예제입니다.
my_list = ["Python-", "fun", "to-", "code"]
print("The list is :")
print(my_list)
suffix = '-'
print("The suffix is :")
print(suffix)
result = []
temp = []
for element in my_list:
temp.append(element)
if not element.endswith(suffix):
result.append(''.join(temp))
temp = []
print("The result is :")
print(result)실행 결과
The list is : ['Python-', 'fun', 'to-', 'code'] The suffix is : - The result is : ['Python-fun', 'to-code']
코드 설명
- 문자열 리스트를 정의하고 콘솔에 출력합니다.
- 기준이 될 접미사 값을 정의하고 콘솔에 출력합니다.
- 결과를 저장할 두 개의 빈 리스트(
result,temp)를 생성합니다. - 리스트의 요소를 하나씩 순회하면서 임시 리스트
temp에 요소를 추가합니다. - 현재 요소가 지정된 접미사로 끝나지 않는다면,
join메서드를 사용해 지금까지 모은 문자열들을 하나로 합쳐 결과 리스트에 추가합니다. - 그 후 임시 리스트를 다시 비워 다음 그룹의 문자열을 받을 준비를 합니다.
- 최종 결과가 콘솔에 출력됩니다.
동작 원리
이 알고리즘의 핵심은 접미사(위 예제에서는 '-')를 기준으로 문자열을 그룹화하는 것입니다. 'Python-'처럼 하이픈으로 끝나는 요소는 뒤에 이어질 문자열이 있다는 의미이므로 임시 리스트에 계속 누적됩니다. 반면 'fun'처럼 접미사로 끝나지 않는 요소를 만나면, 그 시점까지 누적된 문자열들을 하나로 합쳐 최종 결과에 저장합니다. 그 결과 ['Python-fun', 'to-code']라는 자연스럽게 연결된 문자열 리스트를 얻을 수 있습니다.