Moduļa random metode sample

Moduļa random metode sample atgriež nejaušu elementu atlasi no virknes. Metodes pirmajā parametrā mēs norādām virkni, otrajā parametrā - elementu skaitu, ko vēlamies atlasīt nejauši.

Trešajā neobligātajā nosauktajā parametrā k varam norādīt sarakstu ar elementiem atkārtošanai. Tas ļauj palielināt noteiktu elementu atlases varbūtību. Ņemiet vērā, ka metodes trešais parametrs pievienots tikai sākot ar Python versiju 3.9.

Sintakse

pythonimport random

random.sample(virkne, elementu skaits, [k=atkārtojumi])

Piemērs

Iegūsim nejaušus trīs elementus no saraksta:

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

Koda izpildes rezultāts:

python[2, 1, 5]

Piemērs

Mēģināsim arī iegūt nejaušu elementu atlasi no korteža:

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

Koda izpildes rezultāts:

python[3, 2]

Piemērs

Var arī atlasīt elementus no virknes, ko ģenerē funkcija range:

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

Koda izpildes rezultāts:

python[0, 8, 9]

Piemērs

Tagad paņemsim sarakstu un ar parametra counts palīdzību piešķirsim atkārtojumus katram saraksta elementam. Mūsu gadījumā, lai pirmais elements atkārtojas divas reizes, otrais - trīs, bet trešais - četras reizes. Arī jānorāda parametra nosaukums k elementu skaita izvadei:

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

Šis kods ir līdzvērtīgs šim:

pythonlst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # faktiski šāds saraksts
print(random.sample(lst, 3))

Piemērs

Tagad mēģināsim iegūt elementus no kopas:

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

Tiks atgriezta šāda kļūda:

error[5, 2]
DeprecationWarning: Paraugu ņemšana no kopas ir novecojusi
sākot ar Python 3.9 un tiks noņemta nākamajā versijā.
print(random.sample(st, 2))

Tas ir saistīts ar faktu, ka sākot ar Python versiju 3.9 nav paredzēta iespēja veikt atlasi no kopas.

Skatiet arī

  • moduļa random metode choice,
    kas atgriež nejaušu elementu no virknes
  • moduļa random metode random,
    kas atgriež pseidonejaušu skaitli