Modulio random metodas sample
Modulio random metodas sample
grąžina atsitiktinį elementų pasirinkimą iš
sekos. Pirmajame metodo parametre
nurodome seką, antrajame parametre - elementų kiekį,
kurį norime pasirinkti atsitiktinai.
Trečiajame neprievadiniame parametre
k galime nustatyti elementų sąrašą
pasikartojimui. Tai leidžia
padidinti nurodytų elementų atrankos tikimybę. Atkreipkite dėmesį, kad
treciasis metodo parametras pridėtas tik
nuo Python versijos 3.9.
Sintaksė
import random
random.sample(seka, elementų kiekis, [k=pasikartojimas])
Pavyzdys
Gaukime atsitiktinius tris elementus iš sąrašo:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Kodo vykdymo rezultatas:
[2, 1, 5]
Pavyzdys
Taip pat pabandykime paimti atsitiktinių elementų pasirinkimą iš kortežo:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Kodo vykdymo rezultatas:
[3, 2]
Pavyzdys
Taip pat galima pasirinkti elementus iš
sekos, kurią generuoja
funkcija range:
print(random.sample(range(0, 10), 3))
Kodo vykdymo rezultatas:
[0, 8, 9]
Pavyzdys
Dabar paimkime sąrašą ir naudodami
parametrą counts priskirkime pasikartojimus
kiekvienam elementui iš sąrašo. Mūsų
atveju, tegul pirmasis elementas kartojasi
du kartus, antrasis - tris, o trečiasis - keturis
kartus. Taip pat būtina nurodyti parametro pavadinimą
k elementų kiekio išvedimui:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Šis kodas yra lygiavertis šiam:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # faktiškai toks sąrašas
print(random.sample(lst, 3))
Pavyzdys
Dabar pabandykime paimti elementus iš aibės:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Grąžinama tokia klaida:
[5, 2]
DeprecationWarning: ėmimas iš aibės pasenęs
nuo Python 3.9 ir bus pašalintas vėlesnėje versijoje.
print(random.sample(st, 2))
Tai susiję su tuo, kad nuo Python versijos
3.9 nebetebūtų galimybės
imti atrankos iš aibės.