Random модулининг sample методи

random модулининг sample методи кетма-кетликдан тасодифий элементлар танлашни қайтаради. Методнинг биринчи параметрида кетма-кетликни кўрсатамиз, иккинчи параметрда - тасодифий равишда танламокчи бўлган элементлар сонини кўрсатамиз.

Учинчи мажбурий бўлмаган номланган параметр k да такрорлаш учун элементлар рўйхатини бериш мумкин. Бу берилган элементларнинг танланиш эҳтимолини оширишта имкон беради. Эътиборанг, методнинг учинчи параметри фақат Python 3.9 версиясидан бошлаб қўшилганлигига.

Синтаксис

pythonimport random

random.sample(кетма-кетлик, элементлар сони, [k=такрор])

Мисол

Келтирилган рўйхатдан тасодифий учта элементни оламиз:

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

Кодни ишга тушириш натижаси:

python[2, 1, 5]

Мисол

Катордан ҳам тасодифий элементларни танлашни ҳаракатбаҳам кўрейлик:

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

Кодни ишга тушириш натижаси:

python[3, 2]

Мисол

range функцияси ҳосил қиладиган кетма-кетликдан ҳам элементларни танлаш мумкин:

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

Кодни ишга тушириш натижаси:

python[0, 8, 9]

Мисол

Энди рўйхатни оламиз ва counts параметри орқали рўйхатдаги ҳар бир элемент учун такрорларни берамиз. Бизнинг ҳолатимизда, биринчи элемент икки mарта, иккинчи - уч, учинчи - тўрт марта такрорлансин. Шунингдек, элементлар сонини чиқариш учун k параметрининг номини кўрсатиш мажбурий:

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

Бу код куйидаги кодга эквивалентдир:

pythonlst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # амалда шундай рўйхат
print(random.sample(lst, 3))

Мисол

Энди тўпламдан элементларни олишни ҳаракатбаҳам кўрейлик:

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

Бизга куйидаги хатолик қайтарилади:

error[5, 2]
DeprecationWarning: Тўпламдан намуна олиш Python 3.9 дан бошланган ва кейинги версияда ўчирилади.
print(random.sample(st, 2))

Бу шундан келиб чиқадики, Python 3.9 версиясидан бошланган тўпламдан намуна олиш имкони назарда тутилмаган.

Шунингдек қаранг

  • random модулининг choice методи,
    у кетма-кетликдан тасодифий элементни қайтаради
  • random модулининг random методи,
    у сўзсиз тасодифий рақамни қайтаради