Модуль random. Функції для послідовностей
Зміст
- 1. Функція random.choice(). Отримати випадковий елемент в послідовності
- 2. Функція random.choices(). Взяти список елементів з популяції
- 3. Функція random.shuffle(). Змінити послідовність
- 4. Функція random.sample(). Отримати список
- Зв’язані теми
Пошук на інших ресурсах:
1. Функція random.choice(). Отримати випадковий елемент в послідовності
Функція random.choice() призначена для отримання випадкового елементу з непустої послідовності. Загальна форма функції
random.choice(sequence)
де sequence – деяка непуста послідовність значень, якими можуть бути числа, рядки тощо.
Якщо задати пусту послідовність, то буде згенероване виключення IndexError, яке виникає коли індекс послідовності знаходиться за межами діапазону.
Приклад. У прикладі формуються дві послідовності. Перша послідовність дні тижня. Друга послідовність довільні числа. В обох випадках викликається функція choice() для вибору випадкового значення.
# Функція random.choice() # підключити модуль random import random # 1. Сформувати послідовність рядків days = ('Sun', 'Mon', 'Tue', 'Wed', 'Thi', 'Fri', 'Sat') # отримати випадковий елемент з послідовності rand_day = random.choice(days) print(rand_day) # 2. Сформувати послідовність чисел intNumbers = ( 2, 17, -11, -20, 33) # отримати випадковий елемент з послідовності randIntNumber = random.choice(intNumbers) print(randIntNumber)
Кожного разу після запуску програми на виконання буде випадково вибиратись випадковий елемент з послідовності. Один з випадків отримання результату виконання програми
Wed -20
⇑
2. Функція random.choices(). Взяти список елементів з популяції
Дана функція введена починаючи з версії Python 3.6. Функція random.choices(population, k) повертає список елементів з набору population. Розмір результуючого списку рівний значенню k.
Згідно документації Python загальна форма функції наступна
random.choices(population, weights=None, *, cum_weights=None, k=1)
де
- population – деяка популяція (набір) елементів. Якщо значення population є пустим, то виникає виключення IndexError;
- k – кількість елементів у результуючому списку, який утворюється з population;
- weights – послідовність, що задає відносні ваги при виборі елементів з набору population. Перед виконання вибору відносні ваги weights конвертуються в сукупні ваги cum_weights;
- cum_weights – альтернативна послідовність до weights. Якщо задана послідовність cum_weights, то встановлюються сукупні (cumulative) ваги при виборі елементів з набору population. Наприклад, відносні ваги [ 1, 3, -2, 5 ] є еквівалентні сукупним (cumulative weights) вагам [1, 4, 2, 7].
Приклад.
# Функція random.choices() # підключити модуль random import random # сформувати деяку послідовність (популяцію) seq1 = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h' ] # з популяції seq1 утворити нові послідовності seq2 = random.choices(seq1, [1, 1, 2, 1, 2, 3, 3, 3], k=6) print('seq2 = ', seq2) seq3 = random.choices(seq1, [5, 5, 5, 5, 5, 5, 5, 5], k=3) print('seq3 = ', seq3) seq4 = random.choices(seq1, [1, 1, 1, 1, 1, 1, 1, 1], k=3) print('seq4 = ', seq4) seq5 = random.choices(seq1, [1, 1, 1, 1, 1, 1, 1, 1], k=10) print('seq5 = ', seq5)
Результат роботи програми
seq2 = ['g', 'g', 'c', 'g', 'f', 'g'] seq3 = ['c', 'f', 'c'] seq4 = ['a', 'c', 'e'] seq5 = ['g', 'h', 'h', 'd', 'h', 'h', 'd', 'h', 'f', 'g']
⇑
3. Функція random.shuffle(). Змінити послідовність
Функція random.shuffle() застосовується до послідовностей. Функція змінює позиції елементів послідовності довільним чином.
Загальна форма виклику функції
random.shuffle(sequence[, random])
де sequence – деяка послідовність, яка може містити елементи різних типів.
Приклад.
# Функція random.shuffle() # підключити модуль random import random # 1. Сформувати послідовність цілих чисел arr = [ 2, 3, 4, 5 ] print(arr) # перемішати послідовність random.shuffle(arr) print(arr) # 2. Сформувати послідовність дійсних чисел arr2 = [ 1.8, -2.8, 3.5, 4.77, -11.2 ] print(arr2) # вивести попередній варіант # перемішати послідовність random.shuffle(arr2) print(arr2) # 3. Сформувати послідовність елементів різних типів sequence = [ 'abc', 0.223, 25, True] print(sequence) # перемішати елементи в послідовності random.shuffle(sequence) print(sequence)
Результат виконання програми
[2, 3, 4, 5]
[2, 4, 5, 3]
[1.8, -2.8, 3.5, 4.77, -11.2]
[1.8, 4.77, -2.8, -11.2, 3.5]
['abc', 0.223, 25, True]
[0.223, True, 25, 'abc']
⇑
4. Функція random.sample(). Отримати список
Функція random.sample() створює нову послідовність унікальних елементів заданого розміру. Послідовність унікальних елементів вибирається з деякого набору або популяції. Попередня послідовність не змінюється
Загальна форма функції
random.sample(population, k)
де
- population – деяка популяція що служить вхідними даними для формування результуючої послідовності;
- k – розмір результуючої послідовності.
Приклад.
# Функція random.sample() # підключити модуль random import random # 1. Сформувати послідовність елементів arr = [ 'a2', 3, '4', 5, False, 5, 5, 5 ] print("arr = ", arr) sample = random.sample(arr,3) # sample = [5, 'a2', '4'] print('random.sample(arr,3) = ', sample) sample = random.sample(arr,6) # sample = [5, 5, 'a2', '4', 5, False] print('random.sample(arr,6) = ', sample) # 2. Послідовність чисел numbers = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 10 чисел sample = random.sample(numbers,10) # усі елементи print('numbers = ', numbers) print('random.sample(numbers,10) = ', sample)
Результат виконання програми
arr = ['a2', 3, '4', 5, False, 5, 5, 5] random.sample(arr,3) = [5, 3, 'a2'] random.sample(arr,6) = [5, '4', 'a2', 5, 3, 5] numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] random.sample(numbers,10) = [0, 6, 5, 3, 2, 7, 1, 8, 9, 4]
⇑
Зв’язані теми
⇑