Metodo sample del modulo random
Il metodo sample del modulo random
restituisce una selezione casuale di elementi da
una sequenza. Nel primo parametro del
metodo specifichiamo la sequenza, nel
secondo parametro - il numero di elementi
che vogliamo selezionare casualmente.
Nel terzo parametro opzionale con nome
counts possiamo impostare una lista
di elementi per la ripetizione. Ciò permette
di aumentare la probabilità di selezione di determinati
elementi. Si noti che
il terzo parametro del metodo è stato aggiunto solo
a partire dalla versione Python 3.9.
Sintassi
import random
random.sample(sequenza, numero_elementi, [counts=ripetizioni])
Esempio
Prendiamo tre elementi casuali da una lista:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Risultato dell'esecuzione del codice:
[2, 1, 5]
Esempio
Proviamo anche a prendere un campione di elementi casuali da una tupla:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Risultato dell'esecuzione del codice:
[3, 2]
Esempio
È anche possibile selezionare elementi da
una sequenza generata dalla
funzione range:
print(random.sample(range(0, 10), 3))
Risultato dell'esecuzione del codice:
[0, 8, 9]
Esempio
Ora prendiamo una lista e con il
parametro counts impostiamo le ripetizioni
per ogni elemento della lista. Nel nostro
caso, lasciamo che il primo elemento si ripeta
due volte, il secondo - tre, e il terzo - quattro
volte. È anche necessario specificare il nome del parametro
k per l'output del numero di elementi:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Questo codice è equivalente al seguente:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # lista effettiva
print(random.sample(lst, 3))
Esempio
Ora proviamo a prendere elementi da un insieme:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Verrà restituito il seguente errore:
[5, 2]
DeprecationWarning: Sampling from a set deprecated
since Python 3.9 and will be removed in a subsequent version.
print(random.sample(st, 2))
Ciò è dovuto al fatto che dalla versione Python
3.9 non è prevista la possibilità
di prendere campioni da un insieme.