더북(TheBook)

=, ++=를 사용하여 문자열을 만드는 방법은 적은 숫자의 객체를 다루는 단순한 경우에 적절하다. 가령 다음과 같이 2.5절에서 소개한 ordchr 함수를 사용하면 모든 알파벳 문자를 포함한 문자열을 만들 수 있다.

n = ord('A')
s = ''
for i in range(n, n + 26):
    s += chr(i)

이 예제는 무척 간결하다. 하지만 파이썬은 내부적으로 메모리에 완전히 새로운 문자열을 계속 반복하여 생성하게 된다.

이런 비효율을 개선하기 위해 대안으로 join 메서드를 사용할 수 있다.

구분자_문자열.join(리스트)

이 메서드는 리스트의 모든 문자열을 연결하여 하나의 커다란 문자열을 만든다. 이 리스트에 항목이 1개 이상 있다면 ‘구분자_문자열’의 텍스트가 문자열 사이를 연결하는 데 사용된다. 빈 문자열도 사용 가능하며, 리스트의 모든 문자가 간단하게 연결될 것이다.

join을 사용하는 것이 문자열 연결 연산자(+)를 사용하는 방법보다 더 효율적이지만, 엄청나게 많은 항목이 있지 않는 한 실행 시간의 차이를 느끼기는 힘들다.

n = ord('A')
a_lst = [ ]
for i in range(n, n + 26):
    a_lst.append(chr(i))
s = ''.join(a_lst)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.