HOWTO · Python

Stampa lista senza parentesi quadre in Python

Questo tutorial mostra come stampare una lista senza parentesi quadre in Python

In questa pagina

Per visualizzare una lista di Python senza parentesi quadre, stampa gli elementi con l’unpacking, unisci le stringhe con un separatore oppure formatta ogni elemento in un ciclo. Scegli print() quando vuoi soltanto mostrare il risultato; usa join() quando ti serve una nuova stringa da salvare o riutilizzare altrove. Gli esempi seguenti mostrano l’output esatto di ciascun approccio.

Esegui questo esempio:

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

items = ["x", "y", "z"]
print(*items, sep=",")
x,y,z

Usa join() con una lista di stringhe

Chiama join() sulla stringa separatrice. Restituisce un’unica stringa, inserendo il separatore tra le stringhe di partenza. È utile quando vuoi assegnare il risultato a una variabile, unirlo ad altro testo o scriverlo in seguito.

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

items = ["red", "green", "blue"]
result = ", ".join(items)
print(result)
red, green, blue

Ogni elemento deve essere già una stringa. Se la lista contiene un intero o un altro valore non stringa, join() solleva un TypeError; converti prima gli elementi, come mostrato più avanti. Una lista vuota produce una stringa vuota, mentre il risultato di una lista con un solo elemento non contiene separatori.

Usa l’unpacking con print() per valori di tipi diversi

L’operatore * scompone un iterabile in argomenti posizionali distinti. print() accetta valori di tipi diversi e li converte in testo per visualizzarli. Il parametro sep stabilisce quale testo inserire tra gli argomenti; per impostazione predefinita viene usato uno spazio.

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

values = [1, "two", 3.0, True]
print(*values, sep=" | ")
1 | two | 3.0 | True

Questo approccio scrive direttamente sullo standard output e non crea una stringa unita da riutilizzare. Con una lista vuota, l’unpacking non fornisce alcun valore, quindi print() scrive soltanto la nuova riga finale. Usa sep="" per accostare i valori oppure lascia l’impostazione predefinita quando uno spazio è adatto.

Converti i valori in stringhe prima di unirli

Quando vuoi ottenere una stringa da valori come i numeri, converti esplicitamente ogni elemento con map(str, values) oppure con una comprensione. In questo modo puoi scegliere il separatore. La conversione usa la forma str() di ciascun valore, pensata per produrre testo leggibile ma potenzialmente incapace di conservarne le informazioni sul tipo.

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

numbers = [1, 2, 3]
result = ",".join(map(str, numbers))
print(result)
1,2,3

Una comprensione è utile anche quando devi trasformare o filtrare i valori: ", ".join(str(value) for value in numbers). Nessuno dei due approcci modifica la lista originale; entrambi creano stringhe per il risultato da visualizzare.

Usa lo slicing di str() per una visualizzazione rapida

Applicare str() a una lista ne restituisce la rappresentazione Python, comprese le parentesi quadre esterne. Per una visualizzazione rapida, [1:-1] rimuove il primo e l’ultimo carattere di quella rappresentazione:

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

items = [1, 2, 3]
print(str(items)[1:-1])
1, 2, 3

Questo metodo conserva i dettagli della rappresentazione, comprese le virgolette attorno agli elementi stringa e le parentesi annidate nelle liste contenute in altre liste. È comodo per una semplice ispezione, ma non è un formattatore generico né un formato di serializzazione. Se vuoi un separatore preciso e una formattazione prevedibile degli elementi, è preferibile unirne le stringhe dopo averli convertiti.

Stampa ogni elemento in un ciclo per formattarlo singolarmente

Usa un ciclo quando ogni elemento richiede una formattazione personalizzata o vuoi controllare cosa viene scritto dopo ciascuno. Di norma, print() termina ogni chiamata con una nuova riga; impostando end puoi cambiare la conclusione. Quando stampi un elemento alla volta, inserisci il separatore in end.

Il codice e le etichette o gli output visibili in questa sezione restano in inglese.

items = [1, 2, 3]
for index, item in enumerate(items):
    if index:
        print(" ", end="")
    print(item, end="")
print()
1 2 3

Il ciclo scrive il separatore soltanto tra un elemento e l’altro; infine, l’ultima chiamata a print() aggiunge una nuova riga. Così eviti uno spazio finale e controlli esattamente la riga visualizzata. Il ciclo scrive progressivamente sullo standard output: se ti serve una singola operazione o una stringa riutilizzabile, scegli l’unpacking o l’unione. Per applicare una formattazione diversa a ogni elemento, componi il testo nel ciclo oppure passa a print() un valore già formattato.