주어진 순서대로 문자열을 연결해야 할 때는 간단한 반복(iteration)을 활용하면 됩니다. 이 글에서는 인덱스 순서를 담은 리스트를 기준으로 문자열 리스트의 요소들을 원하는 순서대로 이어 붙이는 방법을 소개합니다.
예제
다음은 실제 구현 예시입니다.
my_list = ["pyt", "fun", "for", "learning"]
print("The list is :")
print(my_list)
sort_order = [1, 0, 3, 2]
my_result = ''
for element in sort_order:
my_result += my_list[element]
print("The result is :")
print(my_result)출력
The list is : ['pyt', 'fun', 'for', 'learning'] The result is : funpytlearningfor
코드 설명
문자열 요소로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
연결할 순서를 나타내는 정수 리스트(sort_order)를 추가로 정의합니다.
결과를 저장하기 위한 빈 문자열을 생성합니다.
순서 리스트를 반복하면서, 현재 요소를 인덱스로 사용하여 문자열 리스트의 해당 요소에 접근합니다.
접근한 문자열을 += 연산자로 빈 문자열에 계속 이어 붙입니다.
모든 반복이 끝나면 최종 결과가 콘솔에 출력됩니다.
참고: join()을 활용한 더 효율적인 방법
반복문에서 += 연산자로 문자열을 이어 붙이는 방식은 직관적이지만, 파이썬의 문자열은 불변(immutable) 객체이므로 연결할 때마다 새로운 문자열이 생성되어 성능이 저하될 수 있습니다. 다음과 같이 join() 메서드와 제너레이터 표현식을 사용하면 더 간결하고 효율적으로 처리할 수 있습니다.
my_list = ["pyt", "fun", "for", "learning"] sort_order = [1, 0, 3, 2] my_result = ''.join(my_list[i] for i in sort_order) print(my_result)
실행 결과는 동일하게 funpytlearningfor가 출력되며, 코드가 한 줄로 줄어들어 가독성도 크게 향상됩니다.