Metoda sample e modulit random

Metoda sample e modulit random kthen një përzgjedhje të rastësishme të elementeve nga një sekuencë. Në parametrin e parë të metodës specifikojmë sekuencën, në parametrin e dytë - numrin e elementeve, që duam të zgjedhim në mënyrë të rastësishme.

Në parametrin e tretë opcional të emërtuar k mund të vendosim një listë të elementeve për përsëritje. Kjo lejon rritjen e probabilitetit të përzgjedhjes së elementeve të caktuar. Vini re se parametri i tretë i metodës është shtuar vetëm duke filluar nga versioni Python 3.9.

Sintaksa

pythonimport random

random.sample(sekuenca, numri i elementeve, [k=përsëritje])

Shembull

Le të marrim tre elementë të rastësishëm nga lista:

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

Rezultati i ekzekutimit të kodit:

python[2, 1, 5]

Shembull

Le të provojmë gjithashtu të marrim një përzgjedhje të elementeve të rastësishëm nga tuple:

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

Rezultati i ekzekutimit të kodit:

python[3, 2]

Shembull

Gjithashtu mund të zgjidhni elementë nga sekuenca që gjenerohet nga funksioni range:

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

Rezultati i ekzekutimit të kodit:

python[0, 8, 9]

Shembull

Tani le të marrim një listë dhe me ndihmën e parametrit counts të caktojmë përsëritjet për çdo element nga lista. Në rastin tonë, le të përsëritet elementi i parë dy herë, i dyti - tre, dhe i treti - katër herë. Gjithashtu është e nevojshme të specifikohet emri i parametrit k për nxjerrjen e numrit të elementeve:

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

Ky kod është ekuivalent me këtë:

pythonlst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # në fakt një listë e tillë
print(random.sample(lst, 3))

Shembull

Tani le të provojmë të marrim elementë nga një set:

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

Do të kthehet gabimi i mëposhtëm:

error[5, 2]
DeprecationWarning: Marrja e mostrës nga një set është e depratuar
që nga Python 3.9 dhe do të hiqet në një version të mëvonshëm.
print(random.sample(st, 2))

Kjo lidhet me faktin se nga versioni Python 3.9 nuk parashikohet mundësia e marrjes së mostrës nga një set.

Shihni gjithashtu

  • metoda choice e modulit random,
    e cila kthen një element të rastësishëm nga sekuenca
  • metoda random e modulit random,
    e cila kthen një numër pseudo të rastësishëm