Metoden sample i random-modulen
Metoden sample i modulen random
returnerer et tilfeldig utvalg av elementer fra
en sekvens. I den første parameteren til metoden
angir vi sekvensen, i
den andre parameteren - antall elementer,
som vi ønsker å velge tilfeldig.
I den tredje valgfrie navngitte
parameteren k kan vi angi en liste
av elementer for repetisjon. Dette tillater
økt sannsynlighet for utvalg av spesifiserte
elementer. Vær oppmerksom på at
den tredje parameteren i metoden kun er lagt til
med start fra Python-versjon 3.9.
Syntaks
import random
random.sample(sekvens, antall elementer, [k=gjentakelser])
Eksempel
La oss få tre tilfeldige elementer fra en liste:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Resultat av kjøring av koden:
[2, 1, 5]
Eksempel
La oss også prøve å ta et utvalg av tilfeldige elementer fra en tuple:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Resultat av kjøring av koden:
[3, 2]
Eksempel
Det er også mulig å velge elementer fra
sekvensen som genereres av
funksjonen range:
print(random.sample(range(0, 10), 3))
Resultat av kjøring av koden:
[0, 8, 9]
Eksempel
La oss nå ta en liste og ved hjelp av
parameteren counts tildele repetisjoner
for hvert element i listen. I vårt
tilfelle, la det første elementet gjentas
to ganger, det andre - tre, og det tredje - fire
ganger. Det er også nødvendig å angi parameterens navn
k for utskrift av antall elementer:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Denne koden tilsvarer følgende:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # faktisk en slik liste
print(random.sample(lst, 3))
Eksempel
La oss nå prøve å ta elementer fra et mengde:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Vi vil få følgende feilmelding:
[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))
Dette skyldes at fra Python-versjon
3.9 er det ikke mulig
å ta utvalg fra et mengde.