Python remove

Python remove

Il metodo Python remove applicato sulle liste serve ad eliminare elementi da una lista specificata.

La sintassi del metodo remove in Python è molto semplice:

list.remove(elemento_da_rimuovere)

Proviamo questo metodo con delle semplici applicazioni pratiche.

Ricordo, inoltre, che tutti gli esempi, presentati in questa sezione, possono essere provati nel compilatore online a questo link: Pyhton online compiler.

Python Remove

Il metodo remove consente, dunque, di eliminare un elemento dalla lista, indicato tra parentesi tonde. All’interno delle parentesi quindi si specifica il valore da eliminare.

Esempio di utilizzo del metodo

Ecco un semplice esempio al fine di comprendere meglio il funzionamento di questo metodo.

stagioni=[‘Autunno’, ‘Primavera’, ‘Estate’]

stagioni.remove(stagioni[0])

print(stagioni)

Così si elimina Autunno dalla lista.

Allo stesso modo si può utilizzare ad esempio: stagioni.remove(‘Autunno’).

Secondo esempio con il metodo Python remove

Popolare una lista di 5 elementi con il valore del suo indice, posizionando ciascun elemento in testa alla lista. Dopo visualizzare ogni elemento della lista con il valore del suo indice. Infine rimuovere tutti gli elementi.

Per eliminare gli elementi occorre partire dalla coda della lista, pertanto invertiamo l’intervallo del range in modo da considerare gli elementi che vanno da n-1 a 0.

Non possiamo iniziare dall’inizio perché, nel momento in cui elimino il primo elemento, in automatico il secondo elemento passa in prima posizione al termine della prima iterazione. Quindi alla seconda iterazione avremo un elemento in meno e si avrà l’errore ‘out of range’.

Ecco dunque l’algoritmo completo:

n=5
lista=[]
for i in range(n):
    lista.insert(0,i)

for i in range(n):
    print('Elemento in posizione:', i, 'vale', lista[i])

for i in range(n-1,-1,-1):
    lista.remove(lista[i])

print(lista) #in questo caso avrò la lista vuota

Terzo esempio con il metodo Python remove

Inserire 5 elementi in coda ad una lista. Dopo l’inserimento visualizzare la lista ottenuta. Poi cancellare solo gli elementi di valore pari e visualizzare nuovamente la lista ottenuta.

In questo secondo esempio dobbiamo scorrere la lista sempre dalla coda ed eliminare gli elementi solo se soddisfano la condizione indicata nell’if, cioè se sono divisibili per 2.

Dopo, per visualizzare la lista è importante utilizzare nel range len(lista), in quanto la lunghezza della lista non è più n ma è cambiata.

Ecco dunque il codice completo che utilizza il metodo Python remove:


n = 5
lista = []
for i in range(n):
    numero = int(input('Inserisci elemento: '))
    lista.append(numero)

for i in range(n):
    print('Elemento in posizione:', i, 'vale', lista[i])

for i in range(n-1,-1,-1):
    if lista[i]%2 == 0:
        lista.remove(lista[i])

print('Elimino gli elementi pari!')

for i in range(len(lista)):
    print('Posizione', i, ' elemento', lista[i])

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili in python

3 – Operatori aritmetici e di assegnazione in python

4 – Stringhe in python

5 – Casting in python

6 – Input e print in python

7 – Primi esercizi in python

8 – Errori in python

9 – Script python

10 – Scambio di variabili in python

Metodi delle liste in Python

Metodi delle liste in Python

In questa lezione studieremo altri metodi delle liste in Python, che non possono essere utilizzati però con le tuple. In particolare vedremo in dettaglio il metodo append e insert.


Alcuni metodi delle liste in Python

Inserire elementi in una lista

Per inserire elementi in una lista si possono usare due metodi append(val) e insert(pos,val).

La differenza è che il metodo append consente di aggiungere elementi in coda ad una lista in Python, mentre insert consente di aggiungere un valore nella posizione pos specificata.

Append()

Vediamo quindi un esempio pratico sull’uso di append:

stagioni=[‘Primavera’, ‘Estate’]

stagioni.append(‘Autunno’)

print(stagioni)


Insert()

Come già detto il metodo insert, consente di inserire un elemento in una posizione specificata dall’indice. Ad esempio:

stagioni=[‘Primavera’, ‘Estate’]

stagioni.insert(0, ‘Autunno’)

print(stagioni)

Questo script stamperà quindi la lista con l’aggiunta di Autunno in prima posizione: [‘Autunno’, ‘Primavera’, ‘Estate’].

Facciamo altri esempi con i due metodi.

Uso di append

Inserire in una lista di n elementi, i valori del suo indice. Dopo averli inseriti tutti, visualizzare gli elementi e la relativa posizione.


n = int(input('Inserisci il numero degli elementi:'))
lista = []

for i in range(n):
    lista.append(i)

for i in range(n):
    print('Elemento in posizione:', i, 'vale', lista[i])

Analizziamo i cicli che abbiamo utilizzato per risolvere l’algoritmo proposto.

In questo esempio i rappresenta l’indice, mentre lista[i] rappresenta l’elemento.

Supponendo che n valga 5, quindi eseguiamo il primo ciclo for passo passo. Partendo dalla prima iterazione abbiamo:

i=0 e dunque con lista.append(i) ottengo lista[0]=0

i=1 e dunque con lista.append(i) ottengo lista[1]=1

….

i=4 e dunque con lista.append(i) ottengo lista[4]=4


Con il secondo ciclo for poi visualizzo tutti gli elementi ed il suo indice, infatti con i visualizzo l’indice, cioè la posizione dell’elemento mentre con lista[i] visualizzo l’elemento.

Possiamo anche utilizzare questo secondo metodo per leggere gli elementi della lista. Quindi al posto del secondo for posso scrivere:

for i in lista:
    print('Elemento in posizione', lista.index(i), 'vale', i)

N.B. Questo metodo però non funziona se ci sono elementi uguali nella lista!

In questo secondo esempio i rappresenta l’elemento, non l’indice come nel primo esempio, dunque per ottenere l’indice richiamo il già citato metodo index.

L’output generato, in entrambi i casi, sarà dunque questo:

Elemento in posizione 0 vale 0
Elemento in posizione 1 vale 1
Elemento in posizione 2 vale 2
Elemento in posizione 3 vale 3
Elemento in posizione 4 vale 4

Uso di Insert

Adesso implementiamo lo stesso esempio utilizzando insert.


n = 5
lista = []

for i in range(n):
    lista.insert(0,i)

for i in range(n):
    print('Elemento in posizione:', i, 'vale', lista[i])

In questo caso gli elementi sono inseriti in testa alla lista in quanto ho specificato la posizione 0 da cui partire per ogni inserimento. Gli elementi, cioè, a mano a mano vengono spostati verso destra.

La lista, al termine del ciclo for, conterrà i seguenti valori: lista[4,3,2,1,0].

Quindi l’output ottenuto è:

Elemento in posizione: 0 vale 4
Elemento in posizione: 1 vale 3
Elemento in posizione: 2 vale 2
Elemento in posizione: 3 vale 1
Elemento in posizione: 4 vale 0

Anche qui per visualizzare gli elementi avrei potuto utilizzare questo procedimento:

for i in lista:
    print('Elemento in posizione:', lista.index(i), 'vale', i)

Anche in questo caso possiamo utilizzare questo metodo, attenzione però quando ci sono elementi ripetuti!

In questa lezione abbiamo studiato i metodi delle liste in Python, presto faremo delle applicazioni pratiche.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

Numeri random e metodi in Python

Numeri random e metodi in Python

Continuiamo a parlare di numeri random e metodi in Python.

Numeri random e metodi in Python – choice()

Il metodo choice consente di estrarre a caso un elemento della lista o anche della tupla.

Allora potremmo modificare il gioco della morra cinese, che potete consultare a questo link morra cinese in python, utilizzando choice.

morra=('sasso', 'carta', 'forbice')

print(random.choice(morra))

Provate quindi a modificare tutto il gioco utilizzando questo metodo.


Vi ricordo inoltre che potete utilizzare from, come spiegato nellae lezioni precedenti e dunque:

from random import choice

morra=('sasso', 'carta', 'forbice')

print(choice(morra))


Il metodo choice può anche essere utilizzato per estrarre lettere da una stringa ad esempio:

frase='Coding'

print(random.choice(frase))

Il metodo choice può essere utile per generare delle password, come vedremo nei prossimi tutorial.


choices()

Continuiamo a parlare di numeri random e metodi in Python introducendo un altro metodo, choices che ritorna una lista di valori.

Facciamo dunque un esempio:

voti=[4,6,7]

print(random.choices(voti, k=7))

In questo caso ritorna una lista di 7 valori a caso tra 4, 6 e 7.

Facciamo quindi un altro esempio:

voti=[4,6,7]

print(random.choices(voti, weights=[1,8,1], k=10))

In questo caso si ha un elenco di 10 elementi, con possibilità 8 volte maggiore che ci sia il numero 6.


Numeri random e metodi in Python – shuffle()

Introduciamo adesso il metodo shuffle che ha il compito di riorganizzare una lista.

Quindi ad esempio:

morra=['sasso', 'carta', 'forbice']

random.shuffle(morra)

print(morra)

Produce come output una nuova sequenza. Chiaramente questo metodo si può applicare alle liste ma non alle tuple, in quanto le tuple contengono valori che non possono essere modificati, nemmeno nella sequenza.

Si può anche specificare una funzione che restituisce sempre lo stesso valore.

Quindi ad esempio creo una funzione di nome ordine che poi vado a richiamare nel metodo shuffle:

def ordine():

return 0

morra=[‘sasso’, ‘carta’, ‘forbice’]

random.shuffle(morra, ordine)

print(morra)


getrandbits()

Continuiamo ancora a parlare di numeri random e metodi in Python introducendo il metodo getrandbits che ritorna un intero della dimensione dei bit specificati.

Ad esempio per 8 bit avremo i numeri tra o e 255, ricordiamo infatti che 2^8=256.

Facciamo dunque un esempio:

print(getrandbits(8))

print(getrandbits(6))

Nel primo caso si generano numeri tra 0 e 255, nel secondo tra 0 e 64.

Ci sono ancora altri metodi da utilizzare per i numeri random in Python, ne parleremo più avanti.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione in python

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

Numeri random in Python

Numeri random in Python

I numeri random in Python, cioè i numeri pseudocasuali si utilizzano importando innanzitutto il modulo random. Quindi inseriamo semplicemente nello script: import random.

Se provate anche a digitare in modalità interattiva help(‘random’), vedrete le specifiche di questo modulo, con le funzioni che potete utilizzare nei vostri script.

random

Dopo aver importato il modulo dunque possiamo usare tutti i metodi per generare i numeri random.


Numeri random in Python – random()

Il metodo random genera un numero casuale decimale tra 0 e 1.

random.random()

Si generano dunque dei numeri con la virgola compresi tra 0 e 1.


Importazione dei moduli per i numeri random in Python

In Python è possibile richiamare solo alcuni elementi di un modulo, evitando così di richiamare un intero modulo.

Ad esempio possiamo importare solo le funzioni che ci servono utilizzando la parola chiave from seguita dal nome del modulo e poi da import e dal nome del metodo che si vuole importare.

Ecco un possibile esempio:

from random import random

print(random())

Come potete notare in questo modo non è più necessario indicare random.random(), come nell’esempio precedente ma basta solo random().

Inoltre è possibile importare tutti i metodi anche in questo modo:

from random import *

print(random())

print(randint(1,10))

Così è possibile utilizzare tutti i metodi senza ripetere ogni volta random, ma utilizzando solo il nome.


Numeri random in Python – randint()

Il metodo randint genera un numero casuale intero in un intervallo specificato tra parentesi.

random.randint(1, 10)

In questo esempio si generano i numeri casuali tra 1 e 10.


Numeri random in Python – randrange()

Il metodo randrange genera un numero casuale intero, in un intervallo di valori come randint, ma si può specificare lo step.

Ad esempio:

random.randrange(1, 10, 2)

In questo caso si possono generare solo i numeri dispari da 1 a 10, dunque: 1, 3, 5, 7, 9.

Lo step è comunque opzionale, nel senso che si può indicare anche solo:

random.randrange(1, 10)

Ed in questo caso si possono generare i numeri interi da 1 a 10.


seed()

Con questo metodo si può inizializzare il generatore di numeri casuali.

Facciamo dunque un esempio:

random.randint(1, 100)

Se eseguiamo questo script otterremo ogni volta un numero casuale diverso.

Se invece prima impostiamo il seed:

random.seed(10)

random.randint(1, 100)

Otterrete sempre lo stesso numero casuale, in questo caso 74. Provate adesso voi a cambiare il valore del seed.

Conclusioni

Questi sono solo alcuni dei metodi sui numeri random in Python, nella prossima lezione vi introdurrò qualche altro metodo.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili