问题
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?
回答1:
Try this:
from random import choice
print choice([i for i in range(0,9) if i not in [2,5,7]])
回答2:
Try with something like this:
from random import randint
def my_custom_random():
exclude=[2,5,7]
randInt = randint(0,9)
return my_custom_random() if randInt in exclude else randInt
print(my_custom_random())
来源:https://stackoverflow.com/questions/42999093/generate-random-number-in-range-excluding-some-numbers