lettura facile

La ripetizione delle sequenze in Python

La ripetizione delle sequenze in Python è una funzionalità molto utile che ti consente di automatizzare e semplificare il codice. Puoi usare una ripetizione semplice per ripetere n volte una stringa, una lista, una tupla, ecc. In questa guida pratica ti spiego come utilizzare questo concetto in vari contesti.

In Python, la ripetizione di un set() con l'operatore * non è supportata. Questo è dovuto al fatto che i set in Python sono collezioni non ordinate di elementi unici. La ripetizione implica la creazione di elementi duplicati, il che va contro la natura fondamentale dei set di contenere solo elementi unici. Per la stessa ragione non puoi ripetere di un dizionario, perché sono strutture di dati che mappano le chiavi ai valori, e ogni chiave deve essere unica.

Ripetizione di stringhe

In Python, puoi ripetere una stringa semplicemente usando l'operatore * seguito da un numero che indica quante volte la stringa deve essere ripetuta.

Ad esempio, digita questo comando

ripeti = "Python! " * 3

In questo caso la stringa "Python! " viene ripetuta per tre volte.

Per verificarlo, stampa il risultato.

print(ripeti)

La stringa "Python! " è ripetuta 3 volte.

Python! Python! Python!

Questo esempio mostra come l'operatore di moltiplicazione * possa essere utilizzato in modo semplice ed efficace per ripetere stringhe in Python.

Ripetizione di liste

Analogamente alle stringhe, anche le liste possono essere ripetute usando l'operatore *.

Ad esempio, digita

lista = [1, 2, 3] * 2

Questo comando indica che la lista [1, 2, 3] deve essere ripetuta 2 volte.

Visualizza il risultato.

print(lista)

Il risultato di questa operazione è una nuova lista, dove la lista originale è ripetuta due volte in sequenza:

[1, 2, 3, 1, 2, 3]

Combinazione della ripetizione con comprehensions

Le list comprehensions in Python sono un modo conciso per creare liste. Queste possono essere combinate con la ripetizione per creare liste più complesse.

Ad esempio, questa espressione crea una nuova lista contenente i quadrati dei numeri da 1 a 3.

quadrati = [i**2 for i in range(1, 4)] * 2

Ora visualizza il risultato.

print(quadrati)

La lista in output è [1, 4, 9], dato che questi sono i quadrati di 1, 2 e 3, rispettivamente.

Poiché la list comprehensions viene ripetuta due volte, il risultato finale è il seguente:

[1, 4, 9, 1, 4, 9]

Ripetizione di tuple

Le tuple sono immutabili ma anch'esse essere ripetute in modo simile.

Ad esempio, inizia creando una tupla composta da due elementi, 'a' e 'b'. Dopodiché, utilizza l'operatore * per ripetere la tupla due volte.

tupla = ('a', 'b') * 2

Infine, stampa il risultato. La tupla risultante è ('a', 'b', 'a', 'b').

('a', 'b', 'a', 'b')

Questo perché ogni elemento della tupla originale viene ripetuto nella sequenza per il numero di volte specificato, in questo caso due.

Concatenazione e ripetizione

Puoi anche combinare elementi tramite la concatenazione e poi ripeterla.

Ad esempio, concatena due liste e poi duplica il risultato

combinato = (['a', 1] + ['b', 2]) * 2

Stampa il risultato.

print(combinato)

La concatenazione crea una lista di quattro elementi ['a',1,'b',2] che successivamente viene ripetuta per due.

Il risultato finale è il seguente:

['a', 1, 'b', 2, 'a', 1, 'b', 2]

Fai attenzione agli oggetti mutabili

Quando ripeti le liste che contengono degli oggetti mutabili, come altre liste, ricorda che la ripetizione crea riferimenti agli stessi oggetti, non copie.

Ad esempio, crea una lista

lista = [1]

Ripeti la lista per tre volte e salvala dentro un'altra lista.

lista_di_liste = [lista] * 3

Nella lista di liste ottieni la ripetizione della prima lista per tre volte.

print(lista_di_liste)

[[1], [1], [1]]

Ora modifica la lista d'origine

lista[0]=2

Poi stampa nuovamente la lista di liste

print(lista_di_liste)

[[2], [2], [2]]

In questo caso, modificare un elemento della lista interna cambia tutti gli elementi, poiché si riferiscono allo stesso oggetto.

Questo accade perché la lista delle liste contiene il riferimento e non una copia dei valori della lista esterna.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin