【发布时间】:2021-06-19 18:53:28
【问题描述】:
我想在 python 中创建一个随机数字列表,但排除某个数字 k。
我可以创建一个随机的整数列表:
l = [random.randint(0,10) for i in range(5)]
然后我可以删除数字 k,如果它在那里,并在范围内添加另一个随机数,但这似乎步骤太多。
在研究这一点时,很容易找出如何从一个范围内创建一个随机数并排除某个数字,例如:
print (choice([i for i in range(0,9) if i not in [2,5,7]]))
我可以按照创建数组所需的次数执行此操作——但这似乎比必要的复杂。
希望得到一些反馈
【问题讨论】:
-
如果您想要一个理论上并不总是有效的实用解决方案:生成 n 倍于您实际需要的随机数,然后进行过滤。