Python. Module random. Functions for sequences

Module random. Functions for sequences

1. Function random.choice().Get random item in sequence

The random.choice() function is designed to get a random item from a non-empty sequence. The general form of function

random.choice(sequence)

here sequence – some nonempty sequence of values, which can be numbers, strings, etc.

If you specify an empty sequence, an IndexError exception will be thrown, which occurs when the sequence index is out of range.

Example. In the example, two sequences are formed. The first sequence is the days of the week. The second sequence is arbitrary numbers. In both cases, the choice() function will be called to select a random value.

# Function random.choice()
# include the random module
import random

# 1. Form a strings sequence
days = ('Sun', 'Mon', 'Tue', 'Wed', 'Thi', 'Fri', 'Sat')

# get a random item from a sequence
rand_day = random.choice(days)
print(rand_day)

# 2. To generate the sequence of numbers
intNumbers = ( 2, 17, -11, -20, 33)

# get a random element from a sequence
randIntNumber = random.choice(intNumbers)
print(randIntNumber)

Each time after starting the program for execution, a random element from the sequence will be randomly selected. One of the cases of obtaining the result of the program

Wed
-20

 

2. Function random.choices(). Get a list of items from a population

This function has been introduced since Python 3.6. The random.choices (population, k) function returns a list of elements from the population set. The size of the resulting list is k.

According to Python documentation, the general form of the function is as follows

random.choices(population, weights=None, *, cum_weights=None, k=1)

here

  • population – some population (set) of items. If population is empty, an IndexError exception is thrown;
  • k – the number of items in the resulting list, which is obtained from the population set;
  • weights – a sequence that sets relative weights when selecting items from a population set. Before making a selection, the relative weights of the weights are converted to the cumulative weights of cum_weights;
  • cum_weights – alternate sequence to weights. If the cum_weights sequence is specified, then cumulative weights are set when selecting elements from the population set. For example, relative weights [1, 3, -2, 5] are equivalent to cumulative weights [1, 4, 2, 7].

Example.

# Function random.choices()
# include module random
import random

# form a population
seq1 = [ 'а', 'b', 'с', 'd', 'е', 'f', 'g', 'h' ]

# form a new sequences from the seq1 population
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)

The result of the program

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. Function random.shuffle()

Function random.shuffle() is applied to sequences. The function arbitrarily changes the positions of the items of the sequence.

General form of function call

random.shuffle(sequence[, random])

here sequence – some sequence that may contain items of different types.

Example.

# Fucntion random.shuffle()
# include module random
import random

# 1. Form the sequence of integers
arr = [ 2, 3, 4, 5 ]
print(arr)

# shuffle the elements of sequence
random.shuffle(arr)
print(arr)

# 2. Form a sequence of real numbers
arr2 = [ 1.8, -2.8, 3.5, 4.77, -11.2 ]
print(arr2) # display the previous option

# shuffle the elements of sequence
random.shuffle(arr2)
print(arr2)

# 3. Form a sequence of items of different types
sequence = [ 'abc', 0.223, 25, True]
print(sequence)

# shuffle the elements of sequence
random.shuffle(sequence)
print(sequence)

The result of the program

[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. Function random.sample(). Get a list

The random.sample() function creates a new sequence of unique items of a given size. A sequence of unique items is selected from a certain set or population. The previous sequence does not change.

The general form of function

random.sample(population, k)

here

  • population – some population that serves as input to form the resulting sequence;
  • k – size of the resulting sequence.

Example.

# Function random.sample()
# include module random
import random

# 1. Form the sequence of items
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. The sequence of numbers
numbers = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 10 numbers
sample = random.sample(numbers,10) # all items

print('numbers = ', numbers)
print('random.sample(numbers,10) = ', sample)

The result of the program

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]