Python-如何生成具有多个范围的随机整数?
问题内容:
我从(a,b)的不同集合生成X数量的随机整数时遇到了困惑。例如,我想从(1,5),(9,15)和(21,27)生成5个随机整数。我的代码生成5个随机整数,但仅在21到27之间,而不是其他两个整数。理想情况下,我希望看到的像是1,4,13,22,25,而不是21,21,25,24,27。
我的代码:
from random import randint
n = 0
while n < 5:
n += 1
for i in (randint(1,5),randint(9,15),randint(21,27)):
x = i
print i
问题答案:
不理想
from random import randint, choice
for _ in range(5):
print(choice([randint(1,5),randint(9,15),randint(21,27)]))
正如Blender所说-更清晰的版本
from random import randint, choice
for _ in range(5):
r = choice([(1,5),(9,15),(21,27)])
print(randint(*r))