Affrontiamo qualche esercizio di stampa di liste utilizzando i cicli e dei test con if-then. Se volessimo stampare gli elementi di una lista, separati da una virgola potremmo scrivere:
numeri = [12, 23, 34, 45, 56] for x in numeri: print(x, end=", ")
Eseguendo il codice osserveremmo questo risultato:
12, 23, 34, 45, 56,
Dopo l’ultimo numero, purtroppo compare una virgola. Come possiamo evitare di stamparla?
Dovremmo tenere conto di quale elemento stiamo stampando e nel caso sia l’ultimo, omettere la virgola. Per tenere conto della posizione usiamo una variabile i che parte da 1 e aumentiamo a ogni iterazione. Modifichiamo il codice, stampando anche il valore di i:
numeri = [12, 23, 34, 45, 56] i = 1 for x in numeri: print(x, end=", ") print(i) i += 1
Il risultato prodotto è:
12, 1 23, 2 34, 3 45, 4 56, 5
Di fianco all’elemento della lista troviamo il valore di i. All’interno del corpo del ciclo dovremo stampare la virgola fino a che i è minore di 5, cioè del numero di elementi contenuti nell’elenco, che possiamo ottenere con len(). Per intercettare l’ultimo passaggio useremo un if-else: se i è minore di 5, stampiamo la virgola, se è pari o superiore, la virgola non ci va.
numeri = [12, 23, 34, 45, 56] i = 1 for x in numeri: if ( i < len(numeri)): print(x, end=", ") else: print(x) i += 1
Listato 1.20 – Stampare gli elementi di una lista, separati da virgole.