我有几行代码生成随机数,如何停止生成重复数字?
import random
num = random.randrange(0,1000)
x = 13
while num != x :
num = random.randrange(0 , 14)
print(num)
答案 0 :(得分:2)
如果您只能选择一次,则这与随机排序列表并一次挑选一个数字相同
import random
desired_number = 13
guesses = range(0,14)
random.shuffle(guesses)
current_guess = None
while current_guess != desired_number:
current_guess = guesses.pop()
print(current_guess)
答案 1 :(得分:1)
存储生成的数字,并针对每个新号码检查此列表。
由于要检查的列表变得更长,性能不会很好,但至少你不会有重复。
另一种方法是从1..n生成一个数字列表,对数字进行洗牌,然后迭代列表以获得下一个唯一的随机数。
>>> import random
>>> l = list(range(4))
>>> random.shuffle(l)
>>> l
[3, 2, 4, 1]