Search code examples
pythonrandom

Generate random number in range excluding some numbers


Is there a simple way in Python to generate a random number in a range excluding some subset of numbers in that range?

For example, I know that you can generate a random number between 0 and 9 with:

from random import randint
randint(0,9)

What if I have a list, e.g. exclude=[2,5,7], that I don't want to be returned?


Solution

  • Try this:

    from random import choice
    
    print(choice([i for i in range(0,9) if i not in [2,5,7]]))