Python 문자열 추가

파이썬 문자열 객체는 불변이다. 따라서 두 개의 문자열을 연결하기 위해 + 연산자를 사용할 때마다 새로운 문자열이 생성된다. 많은 문자열을 추가해야 하는 경우, + 연산자를 사용하면 최종 결과가 나오기 전에 많은 임시 문자열이 불필요하게 생성된다.

파이썬 문자열 추가

문자열을 ‘n’번 연결하는 함수를 살펴보자.

def str_append(s, n):
    output = ''
    i = 0
    while i < n:
        output += s
        i = i + 1
    return output

이 함수를 + 연산자의 사용법을 보여주기 위해 정의하고 있다. 나중에 timeit 모듈을 사용하여 성능을 테스트할 것이다. 단순히 문자열을 ‘n’번 연결하려면 s = 'Hi' * 10을 사용하면 된다.

문자열 추가 작업을 수행하는 또 다른 방법은 리스트를 생성하고 문자열을 리스트에 추가하는 것이다. 그런 다음 문자열 join() 함수를 사용하여 이들을 함께 병합하여 결과 문자열을 얻는다.

def str_append_list_join(s, n):
    l1 = []
    i = 0
    while i < n:
        l1.append(s)
        i += 1
    return ''.join(l1)

이러한 방법들이 예상대로 작동하는지 확인하기 위해 이들을 테스트해보자.

if __name__ == "__main__":
    print('Append using + operator:', str_append('Hi', 10))
    print('Append using list and join():', str_append_list_join('Hi', 10))
    # 위의 방법들은 timeit 모듈을 사용하여 성능을
    # 확인하기 위해 만들어진 것이므로, 이 경우에는
    print('Append using * operator:', 'Hi' * 10)

출력:

Append using + operator: HiHiHiHiHiHiHiHiHiHi
Append using list and join(): HiHiHiHiHiHiHiHiHiHi
Append using * operator: HiHiHiHiHiHiHiHiHiHi

Python에서 문자열을 추가하는 가장 좋은 방법

I have both the methods defined in string_append.py file. Let’s use timeit module to check their performance.

$ python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append("Hello", 1000)' 
1000 loops, best of 5: 174 usec per loop
$ python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append_list_join("Hello", 1000)'
1000 loops, best of 5: 140 usec per loop

$ python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append("Hi", 1000)' 
1000 loops, best of 5: 165 usec per loop
$ python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append_list_join("Hi", 1000)'
1000 loops, best of 5: 139 usec per loop

요약

문자열이 몇 개 없다면, 그 어떤 방법을 사용하여도 상관없습니다. 가독성 측면에서는 + 연산자를 사용하는 것이 문자열이 적은 경우 더 좋아보입니다. 그러나 많은 양의 문자열을 추가해야 한다면, 리스트와 join() 함수를 사용해야 합니다.

GitHub 저장소에서 완전한 파이썬 스크립트와 더 많은 Python 예제를 확인할 수 있습니다.

Source:
https://www.digitalocean.com/community/tutorials/python-string-append