Метод sample модула random
Метод sample модула random
враћа случајан избор елемената из
секвенце. У првом параметру
метода наводимо секвенцу, у
другом параметру - број елемената,
које желимо да изаберемо насумично.
У трећем опционалном именованом
параметру k можемо задати листу
елемената за понављање. Ово омогућава
повећање вероватноће избора задатих
елемената. Обратите пажњу на то да је
трећи параметар методе додат тек
почев од верзије Пајтона 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 доделимо понављања
за сваки елемент из листе. У нашем
случају, нека се први елемент понови
два пута, други - три, а трећи - четири
пута. Такође је потребно навести име параметра
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: Sampling from a set deprecated
since Python 3.9 and will be removed in a subsequent version.
print(random.sample(st, 2))
Ово је повезано са тим што од верзије Пајтона
3.9 није предвиђена могућност
узимања узорка из скупа.