Creare liste di numeri in modo efficiente
Abbiamo visto nelle sezioni precedenti cosa sono le liste, come di definiscono e come è possibile modificarle utilizzando varie funzioni. Durante la definizione di una lista, abbiamo visto che è necessario inserire una sequenza di elementi all’interno di due parentesi quadre.
Bene in Python, esiste una funzione che ci facilita molto la definizione di liste, la funzione range(). Infatti dato che è un linguaggio che lavora spesso per lo sviluppo di applicazioni scientifiche, la definizione rapida di liste numeriche e soprattutto di matrici (liste di liste) deve essere quanto mai facilitata.
Questa funzione ci permette di ottenere delle liste di valori numerici in maniera molto semplice ed efficace.
>>> lista = list(range(10))
>>> lista
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Come possiamo vedere la funzione range() ha creato una lista di numeri in sequenza da 0 a 9, senza doverli definire uno ad uno. La chiamata alla funzione list() serve per il casting, cioè la conversione dell’oggetto restituito da range() in una lista.
Il comportamento della funzione range() varia al variare del numero di argomenti passati.
Se questo metodo viene chiamato con un solo valore passato come argomento, questo produrrà una sequenza da 0 fino a quel valore.
Se invece passiamo due argomenti, il primo sarà il valore di partenza, mentre il secondo quello di fine.
>>> list(range(4,10))
[4, 5, 6, 7, 8, 9]
Se questo metodo viene chiamato con tre argomenti, il primo sarà il valore di partenza, il secondo quello di fine, ed il terzo l’intervallo da prendere tra un valore e quello successivo da inserire nella lista
>>> list(range(4,12,3))
[4, 7, 10]