De sample methode van de random module

De methode sample van de module random retourneert een willekeurige steekproef van elementen uit een reeks. In de eerste parameter van de methode specificeren we de reeks, in de tweede parameter - het aantal elementen, dat we willekeurig willen selecteren.

In de derde optionele benoemde parameter k kunnen we een lijst van elementen voor herhaling opgeven. Dit maakt het mogelijk de kans op selectie van bepaalde elementen te vergroten. Let op dat de derde parameter van de methode alleen is toegevoegd vanaf Python versie 3.9.

Syntaxis

pythonimport random

random.sample(reeks, aantal elementen, [k=herhaling])

Voorbeeld

Laten we drie willekeurige elementen uit een lijst halen:

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

Resultaat van de code:

python[2, 1, 5]

Voorbeeld

Laten we ook proberen een steekproef van willekeurige elementen uit een tuple te nemen:

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

Resultaat van de code:

python[3, 2]

Voorbeeld

Het is ook mogelijk elementen te selecteren uit de reeks gegenereerd door de functie range:

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

Resultaat van de code:

python[0, 8, 9]

Voorbeeld

Laten we nu een lijst nemen en met behulp van de parameter counts herhalingen toewijzen voor elk element in de lijst. In ons geval, laat het eerste element twee keer herhalen, de tweede - drie, en de derde - vier keer. Het is ook nodig om de parameter naam k op te geven voor het aantal uit te voeren elementen:

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

Deze code is equivalent aan het volgende:

pythonlst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # feitelijk zo'n lijst
print(random.sample(lst, 3))

Voorbeeld

Laten we nu proberen elementen uit een set te halen:

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

We krijgen de volgende foutmelding:

error[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 komt omdat vanaf Python versie 3.9 het niet mogelijk is om een steekproef uit een set te nemen.

Zie ook

  • methode choice van de module random,
    die een willekeurig element uit een reeks retourneert
  • methode random van de module random,
    die een pseudo-willekeurig getal retourneert