Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Immutabilità delle Stringhe | Stringhe
Tipi di Dati in Python

bookImmutabilità delle Stringhe

In Python, le stringhe sono immutabili: una volta create, i caratteri che contengono non possono essere modificati direttamente. Qualsiasi "modifica" effettuata crea in realtà una nuova stringa. Questo è importante sia per la correttezza (nessuna modifica accidentale in loco) sia per le prestazioni (modalità di costruzione di stringhe più grandi).

Nessuna modifica in loco

È possibile leggere i caratteri tramite indice, ma non è possibile assegnare loro nuovi valori.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

La maggior parte dei metodi delle stringhe restituisce una nuova stringa e lascia l'originale invariata.

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

L'utilizzo in catena è corretto, ma ricorda che ad ogni passaggio ottieni un nuovo oggetto.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

"Modifica" tramite creazione di una nuova stringa

Utilizzare slicing, replace o concatenazione per produrre un nuovo valore.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

Costruzione efficiente

L'uso ripetuto di + in grandi cicli può essere lento (molte stringhe intermedie). Un modello comune è raccogliere i pezzi e unirli una sola volta:

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Nota

Imparerai altri modelli di unione/formattazione nel prossimo capitolo.

1. Quale riga tenta di modificare una stringa in loco e genererà un errore?

2. Cosa stamperà il codice?

3. È necessario assemblare una stringa lunga da molti piccoli pezzi. Qual è la pratica consigliata?

question mark

Quale riga tenta di modificare una stringa in loco e genererà un errore?

Select the correct answer

question mark

Cosa stamperà il codice?

Select the correct answer

question mark

È necessario assemblare una stringa lunga da molti piccoli pezzi. Qual è la pratica consigliata?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you explain why string immutability is important in Python?

What are some common mistakes people make when working with immutable strings?

Can you show more examples of efficient string building?

Awesome!

Completion rate improved to 5.26

bookImmutabilità delle Stringhe

Scorri per mostrare il menu

In Python, le stringhe sono immutabili: una volta create, i caratteri che contengono non possono essere modificati direttamente. Qualsiasi "modifica" effettuata crea in realtà una nuova stringa. Questo è importante sia per la correttezza (nessuna modifica accidentale in loco) sia per le prestazioni (modalità di costruzione di stringhe più grandi).

Nessuna modifica in loco

È possibile leggere i caratteri tramite indice, ma non è possibile assegnare loro nuovi valori.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

La maggior parte dei metodi delle stringhe restituisce una nuova stringa e lascia l'originale invariata.

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

L'utilizzo in catena è corretto, ma ricorda che ad ogni passaggio ottieni un nuovo oggetto.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

"Modifica" tramite creazione di una nuova stringa

Utilizzare slicing, replace o concatenazione per produrre un nuovo valore.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

Costruzione efficiente

L'uso ripetuto di + in grandi cicli può essere lento (molte stringhe intermedie). Un modello comune è raccogliere i pezzi e unirli una sola volta:

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Nota

Imparerai altri modelli di unione/formattazione nel prossimo capitolo.

1. Quale riga tenta di modificare una stringa in loco e genererà un errore?

2. Cosa stamperà il codice?

3. È necessario assemblare una stringa lunga da molti piccoli pezzi. Qual è la pratica consigliata?

question mark

Quale riga tenta di modificare una stringa in loco e genererà un errore?

Select the correct answer

question mark

Cosa stamperà il codice?

Select the correct answer

question mark

È necessario assemblare una stringa lunga da molti piccoli pezzi. Qual è la pratica consigliata?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4
some-alt