Python permette di uti­liz­za­re diversi metodi per combinare le sequenze di caratteri, ad esempio con l’operatore +, con str.join() oppure con la for­mat­ta­zio­ne delle stringhe. La con­ca­te­na­zio­ne delle stringhe in Python offre quindi la pos­si­bi­li­tà di ma­ni­po­la­re le sequenze di caratteri in modo fles­si­bi­le ed ef­fi­cien­te, il che è in­di­spen­sa­bi­le in molti casi ap­pli­ca­ti­vi nello sviluppo software.

Che cos’è la con­ca­te­na­zio­ne delle stringhe in Python?

La con­ca­te­na­zio­ne delle stringhe in Python è una tecnica che permette di unire le sequenze di caratteri (stringhe) col­le­gan­do­le per creare un’unica stringa. Questo processo è fon­da­men­ta­le nei casi in cui hai bisogno di mo­di­fi­ca­re o for­mat­ta­re i testi in Python. Esistono varie pos­si­bi­li­tà per con­ca­te­na­re le stringhe in Python: i due metodi più usati sono l’operatore + e il metodo str.join().

È im­por­tan­te che la con­ca­te­na­zio­ne delle stringhe sia ef­fi­cien­te, in par­ti­co­la­re quando si lavora con grandi quantità di testi o con ap­pli­ca­zio­ni in cui le pre­sta­zio­ni sono im­por­tan­ti. Al riguardo, è con­si­glia­bi­le scegliere il metodo più adatto per la con­ca­te­na­zio­ne in modo da evitare colli di bottiglia in­de­si­de­ra­ti e ot­ti­miz­za­re l’ef­fi­cien­za del codice.

I metodi per con­ca­te­na­re le stringhe in Python

È possibile con­ca­te­na­re le stringhe in Python in diversi modi. Alcuni dei metodi più usati sono:

  • L’operatore +
  • L’operatore *
  • Il metodo join()
  • L’operatore %
  • La funzione format()
  • Le f-string

L’operatore +

Python ti permette di unire fra loro le stringhe per mezzo dell’operatore + po­si­zio­nan­do­le di­ret­ta­men­te una dopo l’altra. Questo operatore collega le stringhe ottenendo come risultato una nuova stringa.

str1 = "Hello, "
str2 = "World!"
result = str1 + str2
print(result)  # Output: Hello, World!
python

Uti­liz­zan­do l’operatore +, nel nostro esempio abbiamo unito le stringhe str1 e str2. La stringa ri­sul­tan­te viene quindi me­mo­riz­za­ta nella variabile result. Se si emette questa nuova stringa, il risultato vi­sua­liz­za­to è Hello, World!.

Ricorda: ogni volta che esegui l’operatore + viene creata una nuova stringa, perché le stringhe in Python sono im­mu­ta­bi­li. Uti­liz­zan­do la con­ca­te­na­zio­ne per grandi quantità di stringhe, questa ca­rat­te­ri­sti­ca può portare a cali delle pre­sta­zio­ni. In questi casi può convenire scegliere un metodo più ef­fi­cien­te come str.join().

L’operatore *

Uti­liz­zan­do l’operatore * su una stringa,* si mol­ti­pli­ca la stringa per il numero indicato* e si ottiene una con­ca­te­na­zio­ne ripetendo la stringa originale.

str1 = "Hello! "
multiplier = 3
result = str1 * multiplier
print(result)  # Output: Hello! Hello! Hello!
python

In questo esempio la stringa str1 viene mol­ti­pli­ca­ta per il valore 3. Il risultato è una con­ca­te­na­zio­ne della stringa str1 in Python per tre volte una dopo l’altra.

Il metodo join()

Di norma si utilizza il metodo join() su una stringa de­li­mi­ta­to­re prendendo una sequenza di stringhe come argomento.

words = ["Python", "is", "great"]
separator = " "
result = separator.join(words)
print(result)  # Output: Python is great
python

In questo esempio, words è una lista di stringhe. Il metodo join() si applica alla stringa de­li­mi­ta­to­re separator, che in questo caso è un carattere spazio. Il metodo unisce quindi gli elementi della lista words con il de­li­mi­ta­to­re indicato e genera una nuova stringa in cui ciascun elemento della lista è separato per mezzo del carattere spazio. Il risultato viene me­mo­riz­za­to nella variabile result e quindi emesso.

Il metodo %

Il metodo % è noto anche come for­mat­ta­zio­ne delle stringhe con %. Veniva uti­liz­za­to più spesso nelle versioni più vecchie di Python, mentre nelle versioni più recenti è stato so­sti­tui­to dal metodo str.format() e dalla for­mat­ta­zio­ne con f-string. Il metodo % permette di inserire valori in una stringa pre­de­fi­ni­ta.

name = "Alice"
age = 30
greeting = "My name is %s and I am %d years old." % (name, age)
print(greeting)  # Output: My name is Alice and I am 30 years old.
python

In questo esempio scegliamo %s per con­tras­se­gna­re una stringa e %d per un numero intero. Il metodo % inserisce i valori di name e age nella stringa pre­de­fi­ni­ta. I valori vengono assegnati come tupla fra le parentesi e inseriti negli appositi se­gna­po­sto all’interno della stringa.

La funzione format()

La funzione format() permette di con­ca­te­na­re le stringhe in Python so­sti­tuen­do i se­gna­po­sto di una stringa con dei valori. Si tratta di una pos­si­bi­li­tà più fles­si­bi­le e meglio leggibile per inserire i valori in una stringa. A tal fine è possibile definire i se­gna­po­sto mediante posizioni o nomi.

name = "Alice"
age = 30
greeting = "My name is {} and I am {} years old.".format(name, age)
print(greeting)  # Output: My name is Alice and I am 30 years old.
python

Qui la funzione format() prende i valori di name e age come argomenti e li inserisce nei se­gna­po­sto della stringa nell’ordine in cui vengono assegnati nella funzione.

Le f-string

Le f-string sono un ulteriore metodo di for­mat­ta­zio­ne delle stringhe in Python che puoi uti­liz­za­re per la con­ca­te­na­zio­ne delle stringhe.

name = "Alice"
age = 30
greeting = f"My name is {name} and I am {age} years old."
print(greeting)  # Output: My name is Alice and I am 30 years old.
python

Nel nostro esempio le f-string sono definite dalla lettera “f” posta prima della stringa. Le variabili name e age sono poste fra parentesi graffe all’interno della stringa. Durante l’ese­cu­zio­ne, Python so­sti­tui­sce questi se­gna­po­sto con i valori effettivi delle variabili name e age.

Se vuoi ap­pro­fon­di­re la gestione delle stringhe in Python, ti con­si­glia­mo di seguire i tutorial sulle sot­to­strin­ghe in Python, split in Python, string index in Python e come con­fron­ta­re le stringhe in Python nella nostra guida.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana
Vai al menu prin­ci­pa­le