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ė

pythonimport random

random.sample(seka, elementų kiekis, [k=pasikartojimas])

Pavyzdys

Gaukime atsitiktinius tris elementus iš sąrašo:

pythonlst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))

Kodo vykdymo rezultatas:

python[2, 1, 5]

Pavyzdys

Taip pat pabandykime paimti atsitiktinių elementų pasirinkimą iš kortežo:

pythontpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))

Kodo vykdymo rezultatas:

python[3, 2]

Pavyzdys

Taip pat galima pasirinkti elementus iš sekos, kurią generuoja funkcija range:

pythonprint(random.sample(range(0, 10), 3))

Kodo vykdymo rezultatas:

python[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:

pythonlst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))

Šis kodas yra lygiavertis šiam:

pythonlst = [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:

pythonst = {1, 2, 3, 4, 5}
print(random.sample(st, 2))

Grąžinama tokia klaida:

error[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.

Taip pat žiūrėkite

  • modulio random metodas choice,
    kuris grąžina atsitiktinį elementą iš sekos
  • modulio random metodas random,
    kuris grąžina pseudoatsitiktinį skaičių