How to generate non-repeating random numbers in Python?


In this article, we will show you how to generate non-repeating random numbers in Python. Below are the methods to accomplish this task:

  • Using randint() & append() functions

  • Using random.sample() method of given list

  • Using random.sample() method of a range of numbers

  • Using random.choices() method

Using randint() & append() functions

Algorithm (Steps)

Following are the Algorithm/steps to be followed to perform the desired task −

  • Use the import keyword, to import the random module.

  • Create an empty list which is the resultant random numbers list.

  • Use the for loop, to traverse the loop 15 times.

  • Use the randint() function (Returns a random number within the specified range) of the random module, to generate a random number in the range in specified range i.e, from 1 to 100.

  • Use the if conditional statement to check whether the generated random number is not in the resultant randomList with the not and in operators (Python Membership Operators).

  • Use the append() function (adds the element to the list at the end) to append the random number to the resultant list, if the condition is True.

  • Print the resultant random numbers list

Example

The following program returns the non-repeating random numbers using the randint(), append() functions −

# importing random module import random # resultant random numbers list randomList=[] # traversing the loop 15 times for i in range(15): # generating a random number in the range 1 to 100 r=random.randint(1,100) # checking whether the generated random number is not in the # randomList if r not in randomList: # appending the random number to the resultant list, if the condition is true randomList.append(r) # printing the resultant random numbers list print("non-repeating random numbers are:") print(randomList)

Output

On executing, the above program will generate the following output −

non-repeating random numbers are:
[84, 86, 90, 94, 59, 33, 58, 36, 62, 50, 26, 38, 4, 89]

Using random.sample() method of given list

The random.sample() method returns a list containing a randomly selected number of elements from a sequence.

Syntax

random.sample(sequence, k)

Parameters

  • sequence(required) − any sequence like list, tuple etc

  • k(optional) − The length of the returned list as an integer

Algorithm (Steps)

Following are the Algorithm/steps to be followed to perform the desired task −

  • Use the import keyword, to import the random module.

  • Create a variable to store an input list.

  • Use the set() function (returns all the distinct items from an iterable and converts an iterable to set), to remove the repeating elements from the input list.

  • Use the list() function (converts the sequence/iterable to a list), to convert the above set into a list. Now the list has only unique elements.

  • Use the sample() function by passing the list containing unique items, k value as arguments to it to print the k(here 4) random numbers from the list which are nonrepeating.

Example

The following program returns the 4 non-repeating random numbers using the random.sample() function −

# importing random module import random # input list inputList = [1, 2, 3, 1, 4, 3, 5, 7, 9, 8, 2, 3] # removing repeating elements from the list using the set() function resultSet=set(inputList) # converting the set into a list(now the list has only unique elements) uniqueList =list(resultSet) # printing 4 random numbers from the list which is non-repeating print("4 non-repeating random numbers from the list are:") print(random.sample(uniqueList, 4))

Output

On executing, the above program will generate the following output −

4 non-repeating random numbers from the list are:
[7, 2, 4, 8]

Using random.sample() method of a range of numbers

Algorithm (Steps)

Following are the Algorithm/steps to be followed to perform the desired task −

  • Use the import keyword, to import the random module.

  • Get the numbers in the specified range i.e., here 1 to 100 using the range() function (The range() function returns a sequence of numbers that starts at 0 and increments by 1 (default) and stops before a given number).

  • Use the sample() function by passing the given range of numbers list, k value as arguments to it to print the k(here 4) random numbers from the list which are nonrepeating.

Example

The following program returns the 4 non-repeating random numbers using the random.sample() function −

# importing random module import random # getting numbers from 0 to 100 inputNumbers =range(0,100) # printing 4 random numbers from the given range of numbers which are # non-repeating using sample() function print("4 non-repeating random numbers are:") print(random.sample(inputNumbers, 4))

Output

On executing, the above program will generate the following output −

4 non-repeating random numbers are:
[67, 50, 61, 47]

Using random.choices() method

The random module contains the random.choices() method. It is useful to select multiple items from a list or a single item from a specific sequence.

Syntax

random.choices(sequence, k)

Parameters

  • sequence(required) − any sequence like list, tuple etc.

  • k(optional) − The length of the returned list as an integer

Example

The following program returns the 4 non-repeating random numbers using the random.choices() function −

# importing random module import random # getting numbers from 0 to 100 inputNumbers =range(0,100) # printing 4 random numbers from the given range of numbers which are # non-repeating using choices() function print("4 non-repeating random numbers are:") print(random.choices(inputNumbers, k=4))

Output

On executing, the above program will generate the following output −

4 non-repeating random numbers are:
[71, 4, 12, 21]

Conclusion

In this tutorial, we learned how to generate non-repeating numbers in Python using four different ways. We learned how to generate non-repeating numbers that are not on the list. We learned How to determine whether an element is included in a list in order to generate non-repeating integers.

Updated on: 26-Aug-2023

36K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements