HOWTO · Python

Python에서 동등한 문자열 작성기

이 튜토리얼은 Python의 StringBuilder 클래스에 해당하는 것을 보여줍니다.

이 페이지의 내용

문자열은 문자 모음이며 변경할 수없는 개체입니다. 이미 존재하는 블록을 변경하는 대신 문자열의 모든 변경에 대해 새 메모리 블록을 지정해야합니다.

C# 프로그래밍의StringBuilder클래스는 가변 문자열 객체를 생성하고 동적 메모리 할당을 허용합니다. 파이썬에는 그러한 calss가 없지만 문자열 연결을 사용하여이를 달성하고 길고 효율적인 문자열 객체를 만들 수 있습니다.

이것의 기본 아이디어는 문자열 목록을 가져 와서 큰 문자열을 만들기 위해 결합하는 것입니다.

join()함수 사용

목록에서 문자열을 결합하려면join()함수를 사용할 수 있습니다. join()메소드는 반복 가능한 객체의 모든 요소를 ​​결합한 후 문자열을 반환합니다. 다음 코드 스 니펫이이를 설명합니다.

mylist = ["abcd" for i in range(5)]
mystring = "".join(mylist)
print(mystring)

출력:

abcdabcdabcdabcdabcd

목록에서 문자열을 연결하는 다른 많은 방법이 있지만join()함수가 가장 빠른 것으로 간주됩니다.

문자열 연결 방법 사용

for루프와+연산자를 사용하여 목록에서 문자열을 쉽게 연결할 수 있습니다. 다음 예는 방법을 보여줍니다.

mylist = ["abcd" for i in range(5)]
mystring = ""
for i in range(len(mylist)):
    mystring += mylist[i]
print(mystring)

출력:

abcdabcdabcdabcdabcd

StringIO모듈 사용

StringIO모듈을 사용하여 메모리 버퍼에서 문자열을 읽고 쓸 수 있습니다. StringIO객체를 만들고 목록을 반복 한 후이 객체에 씁니다. getvalue()메소드를 사용하여 필요한 문자열을 인쇄 할 수 있습니다. 예를 들면

file_str = StringIO()
for i in range(len(mylist)):
    file_str.write(mylist[i])
print(file_str.getvalue())

출력:

abcdabcdabcdabcdabcd

StringIO모듈의 함수를 사용하여 문자열을 추가 할 수있는 자체 클래스를 만들 수도 있습니다. 예를 들면.

from io import StringIO


class StringBuilder:
    _file_str = None

    def __init__(self):
        self._file_str = StringIO()

    def Append(self, str):
        self._file_str.write(str)

    def __str__(self):
        return self._file_str.getvalue()


sb = StringBuilder()

sb.Append("Hello ")
sb.Append("World")

print(sb)

출력:

Hello World