Python에서 동등한 문자열 작성기
문자열은 문자 모음이며 변경할 수없는 개체입니다. 이미 존재하는 블록을 변경하는 대신 문자열의 모든 변경에 대해 새 메모리 블록을 지정해야합니다.
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
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn