Mbinu ya sample ya moduli ya random
Mbinu sample ya moduli random
inawarudisha uchaguzi wa nasibu wa vipengee kutoka
kwa mfuatilio. Kwenye parameta ya kwanza ya
mbinu tunabainisha mfuatilio, kwenye
parameta ya pili - idadi ya vipengee,
ambavyo tunataka kuchagua kwa nasibu.
Kwenye parameta ya tatu isiyo ya lazima yenye jina
k tunaweza kubainisha orodha
ya vipengee kwa kurudiwa. Hii inaruhusu
kuongeza uwezekano wa uchaguzi wa vipengee vilivyobainishwa.
Zingatia kwamba
parameta ya tatu ya mbinu imeongezwa tu
kuanzia toleo la Python 3.9.
Syntax
import random
random.sample(mfuatilio, idadi ya vipengee, [k=kurudiwa])
Mfano
Wacha tupate vipengee vitatu vya nasibu kutoka kwenye orodha:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Matokeo ya utekelezaji wa kodi:
[2, 1, 5]
Mfano
Wacha pia tujaribu kuchukua sampuli ya vipengee vya nasibu kutoka kwa tuple:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Matokeo ya utekelezaji wa kodi:
[3, 2]
Mfano
Pia inawezekana kuchagua vipengee kutoka
kwa mfuatilio ambao unatolewa na
kitendo range:
print(random.sample(range(0, 10), 3))
Matokeo ya utekelezaji wa kodi:
[0, 8, 9]
Mfano
Sasa wacha tuchukue orodha na kwa kutumia
parameta counts tubainishe kurudiwa
kwa kila kipengee kutoka kwenye orodha. Kwenye kesi yetu,
acha kipengee cha kwanza kirudiwe
mara mbili, cha pili - mara tatu, na cha tatu - mara nne.
Pia inahitajika kubainisha jina la parameta
k kwa ajili ya kuonyesha idadi ya vipengee:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Kodi hii ni sawa na ifuatayo:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # orodha halisi kama hii
print(random.sample(lst, 3))
Mfano
Sasa wacha tujaribu kuchukua vipengee kutoka kwa seti:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Hitilafu ifuatayo itarudishwa kwetu:
[5, 2]
DeprecationWarning: Uchaguzi sampuli kutoka kwa seti umepitwa na wakati
tangu Python 3.9 na utaondolewa katika toleo linalofuata.
print(random.sample(st, 2))
Hii inahusiana na ukweli kwamba kuanzia toleo la Python
3.9 haijatolewa uwezekano wa
kuchukua sampuli kutoka kwa seti.