Метод sample на модула random
Методът sample на модула random
връща случайна селекция от елементи от
последователност. В първия параметър на
метода посочваме последователността, във
втория параметър - броя елементи,
които искаме да изберем случайно.
В третия незадължителен именуван
параметър 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 назначим повторения
за всеки елемент от списъка. В нашия
случай, нека първият елемент се повтори
два пъти, вторият - три, а третият - четири
пъти. Също така е необходимо да се посочи името на параметъра
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))
Това е свързано с факта, че от версия Python
3.9 не е предвидена възможност
да се взема селекция от множество.