더북(TheBook)

join 메서드는 a_lst의 모든 문자열을 연결하여 A~Z의 빈칸 없이 연결된 하나의 큰 문자열을 만든다. 이 경우에는 구분자 문자열이 빈 문자열로 설정되었다.

성능 Tip


단순 문자열 연결하기 대신 join을 사용하면서 얻는 이점은 수천 번 연산해야 하는 큰 사례에서 확인할 수 있다. 이런 사례에서 문자열 연결하기가 갖는 결점은 한 번만 사용하고 파이썬의 ‘가비지 컬렉션(garbage collection)’에 의해 버려질 수천 개의 문자열을 만들어야 한다는 것이다. 그리고 빈번하게 실행된 가비지 컬렉션은 실행 시간의 비효율을 초래한다.5

join을 사용하는 것이 우세한 사례를 하나 살펴보자. 여러분이 이름 리스트를 받아서 콤마 기호로 분리하여 1줄로 멋지게 출력한다고 가정해 보자. 다음은 어려운 방식으로 작성한 코드다.

def print_nice(a_lst):
    s = ''
    for item in a_lst:
        s += item + ', '
    if len(s) > 0:     # 문자열 끝의 콤마 + 빈칸 제거
        s = s[:-2]
    print(s)

 

 


5 역주 가비지 컬렉션은 메모리상에 더 이상 사용하지 않는 객체들을 제거하여 개발자가 직접 객체를 위한 메모리를 할당하거나 해제하는 행위를 하지 않게 도와주는 도구다. 파이썬 실행 환경에 포함되어 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.