Equivalente de String Builder en Python
Una cadena es una colección de caracteres y es un objeto inmutable. Tenemos que especificar un nuevo bloque de memoria para cada cambio en una cadena en lugar de alterar el bloque ya existente.
La clase StringBuilder
en la programación C# crea objetos de cadena mutables y permite la asignación de memoria dinámica. No tenemos tales calss en Python, pero podemos usar la concatenación de cadenas para lograr esto y crear objetos de cadena largos y eficientes.
La idea principal detrás de esto es que tomamos una lista de cadenas y las unimos para construir cadenas grandes.
Utilice la función join()
Para unir cadenas de una lista, podemos usar la función join()
. El método join()
devuelve una cadena después de combinar todos los elementos de un objeto iterable. El siguiente fragmento de código explica esto.
mylist = ["abcd" for i in range(5)]
mystring = "".join(mylist)
print(mystring)
Producción :
abcdabcdabcdabcdabcd
Hay muchas otras formas de concatenar cadenas de una lista, pero la función join()
se considera la más rápida de todas.
Utilice el método de concatenación de cadenas
Podemos concatenar fácilmente cadenas de una lista utilizando el bucle for
y el operador +
. El siguiente ejemplo muestra cómo.
mylist = ["abcd" for i in range(5)]
mystring = ""
for i in range(len(mylist)):
mystring += mylist[i]
print(mystring)
Producción :
abcdabcdabcdabcdabcd
Utilice el módulo StringIO
El módulo StringIO
se puede utilizar para leer y escribir cadenas en el búfer de memoria. Creamos un objeto StringIO
y lo escribimos en este objeto después de recorrer la lista. Podemos imprimir la cadena requerida usando el método getvalue()
. Por ejemplo,
file_str = StringIO()
for i in range(len(mylist)):
file_str.write(mylist[i])
print(file_str.getvalue())
Producción :
abcdabcdabcdabcdabcd
También podemos crear una clase propia que pueda agregar cadenas usando funciones del módulo StringIO
. Por ejemplo,
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)
Producción :
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