HOWTO · Python
String Builder-Äquivalent in Python
Dieses Tutorial zeigt das Äquivalent der StringBuilder-Klasse in Python
Auf dieser Seite
Eine Zeichenkette ist eine Sammlung von Zeichen und ein unveränderliches Objekt. Wir müssen für jede Änderung in einer Zeichenkette einen neuen Speicherblock angeben, anstatt den bereits vorhandenen Block zu ändern.
Die Klasse StringBuilder in der C#-Programmierung erstellt veränderbare Zeichenkettenobjekte und ermöglicht die dynamische Speicherzuweisung. Wir haben keine solchen Calss in Python, aber wir können die String-Verkettung verwenden, um dies zu erreichen und lange effiziente String-Objekte zu erstellen.
Die Hauptidee dahinter ist, dass wir eine Liste von Zeichenketten nehmen und sie zusammenfügen, um große Zeichenketten zu erstellen.
Verwendung von die Funktion join()
Um Zeichenketten aus einer Liste zu verbinden, können Sie die Funktion join() verwenden. Die Methode join() gibt eine Zeichenkette zurück, nachdem alle Elemente eines iterierbaren Objekts kombiniert wurden. Das folgende Code-Snippet erklärt dies.
mylist = ["abcd" for i in range(5)]
mystring = "".join(mylist)
print(mystring)
Ausgabe:
abcdabcdabcdabcdabcd
Es gibt viele andere Möglichkeiten, Zeichenketten aus einer Liste zu verketten, aber die Funktion join() wird als die schnellste von allen angesehen.
Verwendung von die String-Verkettungsmethode
Mit dem Operator for und dem Operator + können wir Strings einfach aus einer Liste verketten. Das folgende Beispiel zeigt wie.
mylist = ["abcd" for i in range(5)]
mystring = ""
for i in range(len(mylist)):
mystring += mylist[i]
print(mystring)
Ausgabe:
abcdabcdabcdabcdabcd
Verwendung von das Modul StringIO
Mit dem Modul StringIO können Zeichenketten im Speicherpuffer gelesen und geschrieben werden. Wir erstellen ein StringIO-Objekt und schreiben es in dieses Objekt, nachdem wir die Liste durchlaufen haben. Wir können die erforderliche Zeichenkette mit der Methode getvalue() drucken. Zum Beispiel,
file_str = StringIO()
for i in range(len(mylist)):
file_str.write(mylist[i])
print(file_str.getvalue())
Ausgabe:
abcdabcdabcdabcdabcd
Wir können auch eine eigene Klasse erstellen, die Zeichenketten mithilfe von Funktionen aus dem Modul StringIO anhängen kann. Zum Beispiel,
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)
Ausgabe:
Hello World