你如何创建一个随机的整数列表,但排除某个数字?

Kat*_*sto 5 python random

我想在 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]])) 我可以按照我需要创建数组的次数来执行此操作——但这​​似乎比必要的。

希望得到一些反馈

Bar*_*mar 7

列出范围内的数字,然后k从列表中删除。然后您可以使用random.choices()从列表中选择多个元素。

numbers = list(range(0, 11))
numbers.remove(k)
result = random.choices(numbers, k=5)
Run Code Online (Sandbox Code Playgroud)

  • 有效,但根据您需要的数字范围和数量,这似乎有点浪费(例如“范围(0, 1000000)”) (2认同)