String Builder equivalente em Python

Manav Narula 30 janeiro 2023
  1. Use a função join()
  2. Use o método de concatenação de strings
  3. Use o Módulo StringIO
String Builder equivalente em Python

Uma string é uma coleção de caracteres e é um objeto imutável. Temos que especificar um novo bloco de memória para cada mudança em uma string, em vez de alterar o bloco já existente.

A classe StringBuilder na programação C# cria objetos string mutáveis ​​e permite a alocação de memória dinâmica. Não temos esses calss no Python, mas podemos usar a concatenação de strings para conseguir isso e criar objetos de string longos e eficientes.

A ideia principal por trás disso é pegarmos uma lista de strings e juntá-los para construir strings grandes.

Use a função join()

Para juntar strings de uma lista, podemos usar a função join(). O método join() retorna uma string após combinar todos os elementos de um objeto iterável. O trecho de código a seguir explica isso.

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

Resultado:

abcdabcdabcdabcdabcd

Existem muitas outras maneiras de concatenar strings de uma lista, mas a função join() é considerada a mais rápida de todas.

Use o método de concatenação de strings

Podemos facilmente concatenar strings de uma lista usando o loop for e o operador +. O exemplo a seguir mostra como.

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

Resultado:

abcdabcdabcdabcdabcd

Use o Módulo StringIO

O módulo StringIO pode ser usado para ler e escrever strings no buffer de memória. Criamos um objeto StringIO e o gravamos neste objeto depois de percorrer a lista. Podemos imprimir a string necessária usando o método getvalue(). Por exemplo,

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

Resultado:

abcdabcdabcdabcdabcd

Também podemos criar uma classe própria que pode anexar strings usando funções do módulo StringIO. Por exemplo,

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)

Resultado:

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

Artigo relacionado - Python String