In this article, we will discuss how to randomly select n elements from the list in Python. Before moving on to the approaches let’s discuss Random Module which we are going to use in our approaches.
A random module returns random values. It is useful when we want to generate random values. Some of the methods of Random module are:- seed(), getstate(), choice(), sample() etc.
Select randomly n elements from a list using randrange()
Here, we are using the random randrange() function to return a single random number from a list.
Python3
import random list = [ 1 , 2 , 3 , 4 ] get_index = random.randrange( len (letters)) print (letters[get_index]) |
Output:
3
Time Complexity: O(n) where n is the number of elements in the list
Auxiliary Space: O(1), here constant extra space is required
Selecting more than one random element from a list using sample()
The sample() method is used to return the required list of items from a given sequence. This method does not allow duplicate elements in a sequence.
python3
# importing random module import random # declaring list list = [ 2 , 2 , 4 , 6 , 6 , 8 ] # initializing the value of n n = 4 # printing n elements from list print (random.sample( list , n)) |
Output:
[8, 6, 6, 4]
Selecting more than one random element from a list using choices()
Here, we are using the random choices() function to return more than one random number from a list.
Python3
# importing random module import random # declaring list list = [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' ] # initializing the value of n n = 4 # printing n elements from list print (random.choices( list , k = n)) |
Output:
['d', 'd', 'f', 'a']
Select randomly n elements from a list using choice()
The choice() method is used to return a random number from given sequence. The sequence can be a list or a tuple. This returns a single value from available data that considers duplicate values in the sequence(list).
python3
# importing random module import random # declaring list list = [ 2 , 2 , 4 , 6 , 6 , 8 ] # initializing the value of n n = 4 # traversing and printing random elements for i in range (n): # end = " " so that we get output in single line print (random.choice( list ), end = " " ) |
Output :
8 2 4 6
RECOMMENDED ARTICLES – Randomly select elements from list without repetition in Python