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 se una stringa è vuota in un modo pythonico
- 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
