Equivalente di String Builder in Python
Una stringa è una raccolta di caratteri ed è un oggetto immutabile. Dobbiamo specificare un nuovo blocco di memoria per ogni modifica in una stringa piuttosto che alterare il blocco già esistente.
La classe StringBuilder
nella programmazione C# crea oggetti stringa mutabili e consente l’allocazione dinamica della memoria. Non abbiamo tali calss in Python, ma possiamo usare la concatenazione di stringhe per ottenere ciò e creare oggetti stringa lunghi ed efficienti.
L’idea principale alla base di questo è che prendiamo una lista di stringhe e le uniamo per costruire stringhe di grandi dimensioni.
Usa la funzione join()
Per unire stringhe da una lista, possiamo usare la funzione join()
. Il metodo join()
restituisce una stringa dopo aver combinato tutti gli elementi di un oggetto iterabile. Il seguente frammento di codice lo spiega.
mylist = ["abcd" for i in range(5)]
mystring = "".join(mylist)
print(mystring)
Produzione:
abcdabcdabcdabcdabcd
Ci sono molti altri modi per concatenare stringhe da una lista, ma la funzione join()
è considerata la più veloce di tutte.
Utilizzare il metodo di concatenazione di stringhe
Possiamo facilmente concatenare stringhe da una lista usando il cicli for
e l’operatore +
. L’esempio seguente mostra come.
mylist = ["abcd" for i in range(5)]
mystring = ""
for i in range(len(mylist)):
mystring += mylist[i]
print(mystring)
Produzione:
abcdabcdabcdabcdabcd
Usa il modulo StringIO
Il modulo StringIO
può essere utilizzato per leggere e scrivere stringhe nel buffer di memoria. Creiamo un oggetto StringIO
e lo scriviamo su questo oggetto dopo aver fatto scorrere l’lista. Possiamo stampare la stringa richiesta usando il metodo getvalue()
. Per esempio,
file_str = StringIO()
for i in range(len(mylist)):
file_str.write(mylist[i])
print(file_str.getvalue())
Produzione:
abcdabcdabcdabcdabcd
Possiamo anche creare una nostra classe che può aggiungere stringhe usando funzioni dal modulo StringIO
. Per esempio,
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)
Produzione:
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.
LinkedInArticolo correlato - Python String
- Come controllare una stringa è vuota in modo pitonico
- Converti una stringa in nome variabile in Python
- Come rimuovere gli spazi bianchi in una stringa in Python
- Estrai numeri da una stringa in Python
- Come convertire una stringa in datario in Python
- Come convertire una stringa in minuscola in Python 2 e 3