리스트 안에서 특정 문자 'K'를 기준으로 인접한 문자열들을 하나로 합쳐야 하는 경우가 종종 있습니다. 예를 들어 '+' 같은 기호를 중심으로 앞뒤 문자열을 연결하고 싶다면, while 반복문과 append() 메서드를 활용하면 간단하게 해결할 수 있습니다.
이 방식은 구분자 역할을 하는 문자열을 발견하면 그 앞과 뒤에 있는 요소를 하나로 묶어 새로운 리스트에 저장하는 원리로 동작합니다.
예제 코드
아래는 실제 동작 예시입니다 −
my_list = ["python", "+", 'is', 'fun', "+", 'to', 'learn']
print("The list is :")
print(my_list)
K = "+"
print("The value of K is :")
print(K)
my_result = []
index = 0
while index < len(my_list):
element = my_list[index]
if (index < len(my_list) - 1) and my_list[index + 1] == K:
element = element + K + my_list[index + 2]
index += 2
my_result.append(element)
index += 1
print("The result is :")
print(my_result)출력 결과
The list is : ['python', '+', 'is', 'fun', '+', 'to', 'learn'] The value of K is : + The result is : ['python+is', 'fun+to', 'learn']
코드 동작 원리
연결 대상이 될 문자열들로 구성된 리스트를 정의하고 콘솔에 출력합니다.
구분자 역할을 할 문자열을 변수
K에 할당하고 화면에 표시합니다.결과를 담을 빈 리스트
my_result를 생성합니다.인덱스로 사용할 정수 변수를 0으로 초기화합니다.
while 반복문에서 현재 인덱스가 리스트 길이보다 작은지 검사합니다.
조건을 만족하면 해당 인덱스의 요소를 변수에 가져옵니다.
바로 다음 요소가 'K'와 일치하는지 확인하고, 일치한다면 현재 요소 뒤에 'K'와 그 다음 요소를 이어 붙여 하나의 문자열로 만듭니다.
구분자까지 처리했으므로 인덱스를 2만큼 건너뛰어 중복 연결을 방지합니다.
완성된 문자열을 결과 리스트에 추가(append)하고 인덱스를 1 증가시켜 다음 요소로 넘어갑니다.
모든 반복이 끝나면 최종 결과 리스트를 콘솔에 출력합니다.
실행 결과 '+'를 기준으로 'python+is', 'fun+to'가 각각 연결되고, 마지막 'learn'은 뒤에 구분자가 없어 그대로 유지되는 것을 확인할 수 있습니다.