1
Python中是否有一種簡單的方法可以生成一個範圍內的隨機數,但不包括該範圍內的某些數字子集?在範圍內生成隨機數,但不包括某些數字
例如,我知道,你可以生成0和9之間的隨機數:
from random import randint
randint(0,9)
如果我有一個列表,例如exclude=[2,5,7]
,我不想被退回?
Python中是否有一種簡單的方法可以生成一個範圍內的隨機數,但不包括該範圍內的某些數字子集?在範圍內生成隨機數,但不包括某些數字
例如,我知道,你可以生成0和9之間的隨機數:
from random import randint
randint(0,9)
如果我有一個列表,例如exclude=[2,5,7]
,我不想被退回?
試試這個:
from random import choice
print choice([i for i in range(0,9) if i not in [2,5,7]])
嘗試用這樣的事情:
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())
這感覺就像一個[XY問題(https://meta.stackexchange.com/questions/66377/what -is-the-xy-problem)給我。你想通過這樣做完成什麼? – Chris
我想你可以做相反的事情,並生成一個你希望被允許返回的數字列表,然後使用['random.choice()'](https://docs.python.org/2/library/random .html#random.choice) – UnholySheep