String Builder-Äquivalent in Python

Manav Narula 25 April 2021
  1. Verwendung von die Funktion join()
  2. Verwendung von die String-Verkettungsmethode
  3. Verwendung von das Modul StringIO
String Builder-Äquivalent in Python

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
Manav Narula avatar Manav Narula avatar

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

Verwandter Artikel - Python String