Random модулининг sample методи
random модулининг sample методи
кетма-кетликдан тасодифий элементлар
танлашни қайтаради. Методнинг биринчи параметрида
кетма-кетликни кўрсатамиз,
иккинчи параметрда - тасодифий равишда танламокчи
бўлган элементлар сонини кўрсатамиз.
Учинчи мажбурий бўлмаган номланган
параметр k да такрорлаш учун элементлар
рўйхатини бериш мумкин. Бу берилган
элементларнинг танланиш эҳтимолини оширишта
имкон беради. Эътиборанг, методнинг учинчи параметри
фақат Python 3.9 версиясидан бошлаб қўшилганлигига.
Синтаксис
import random
random.sample(кетма-кетлик, элементлар сони, [k=такрор])
Мисол
Келтирилган рўйхатдан тасодифий учта элементни оламиз:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Кодни ишга тушириш натижаси:
[2, 1, 5]
Мисол
Катордан ҳам тасодифий элементларни танлашни ҳаракатбаҳам кўрейлик:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Кодни ишга тушириш натижаси:
[3, 2]
Мисол
range функцияси ҳосил қиладиган
кетма-кетликдан ҳам элементларни танлаш мумкин:
print(random.sample(range(0, 10), 3))
Кодни ишга тушириш натижаси:
[0, 8, 9]
Мисол
Энди рўйхатни оламиз ва counts параметри
орқали рўйхатдаги ҳар бир элемент учун такрорларни
берамиз. Бизнинг ҳолатимизда, биринчи элемент икки
mарта, иккинчи - уч, учинчи - тўрт марта такрорлансин.
Шунингдек, элементлар сонини чиқариш учун
k параметрининг номини кўрсатиш мажбурий:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Бу код куйидаги кодга эквивалентдир:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # амалда шундай рўйхат
print(random.sample(lst, 3))
Мисол
Энди тўпламдан элементларни олишни ҳаракатбаҳам кўрейлик:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
Бизга куйидаги хатолик қайтарилади:
[5, 2]
DeprecationWarning: Тўпламдан намуна олиш Python 3.9 дан бошланган ва кейинги версияда ўчирилади.
print(random.sample(st, 2))
Бу шундан келиб чиқадики, Python
3.9 версиясидан бошланган тўпламдан
намуна олиш имкони назарда тутилмаган.