Die sample metode van die random module
Die sample metode van die random module
gee 'n lukrake steekproef elemente uit 'n
reeks terug. In die eerste parameter van die
metode wys ons die reeks, in die
tweede parameter - die aantal elemente,
wat ons lukraak wil kies.
In die derde opsionele benoemde
parameter k kan ons 'n lys van
elemente vir herhaling spesifiseer. Dit laat
toe om die waarskynlikheid van die steekproef van gespesifiseerde
elemente te verhoog. Let daarop dat die
derde parameter van die metode eers bygevoeg is vanaf
Python weergawe 3.9.
Sintaksis
import random
random.sample(reeks, aantal elemente, [k=herhaling])
Voorbeeld
Kom ons kry drie lukrake elemente uit 'n lys:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Resultaat van die kode-uitvoering:
[2, 1, 5]
Voorbeeld
Kom ons probeer ook 'n steekproef van lukrake elemente uit 'n tuple neem:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Resultaat van die kode-uitvoering:
[3, 2]
Voorbeeld
Dit is ook moontlik om elemente uit 'n
reeks te kies wat deur die
range funksie gegenereer word:
print(random.sample(range(0, 10), 3))
Resultaat van die kode-uitvoering:
[0, 8, 9]
Voorbeeld
Kom ons neem nou 'n lys en gebruik die
counts parameter om herhalings
vir elke element in die lys toe te ken. In ons
geval, laat die eerste element twee keer herhaal,
tweede - drie, en derde - vier
keer. Dit is ook nodig om die parameter naam
k vir die uitvoer van die aantal elemente te spesifiseer:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Hierdie kode is ekwivalent aan die volgende:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # effektief so 'n lys
print(random.sample(lst, 3))
Voorbeeld
Kom ons probeer nou elemente uit 'n stel neem:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Die volgende fout sal aan ons terugbesorg word:
[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))
Dit is omdat, vanaf weergawe Python
3.9, daar geen voorsiening is om 'n
steekproef uit 'n stel te neem nie.