我如何在python中创建不创建重复数字的随机数生成器

时间:2018-08-04 20:00:25

标签: python random

我有一个简单的python代码来创建随机数,就在这里

import random
for x in range(100):
    print (random.randint(1,100))

即使此代码创建了随机数,它仍然可以创建重复项,有人可以帮我解决一个使其无法打印重复项的想法吗?

3 个答案:

答案 0 :(得分:3)

首先生成数字,然后将其洗牌,然后从该列表中选择。

import random

numbers = list(range(100))  # `numbers` is now a list [0, 1, ..., 99] 
random.shuffle(numbers)  # the list is now in random order

while numbers:  # While there are numbers left, 
    a = numbers.pop()  # take one from the list,
    print(a)  # and print it.

答案 1 :(得分:0)

您可以将它刚生成的随机数存储到列表中,然后在每次生成另一个数字时遍历列表。如果列表中存在新生成的号码,则将其废弃,然后再进行更新。

这是我的最佳猜测,但我不会为您编写任何代码,最好让您弄清楚并学习。如果您确实需要一个代码示例,请告诉我,我可以为您制作一个。

答案 2 :(得分:0)

import random


mySet = set()

totalTries = 20
for i in range(totalTries):
    mySet.add(random.randint(0, 20))
###................................

_ = [print(str(x) + ", ", end="") for x in mySet]
print("\n")
print(str(totalTries - len(mySet)) + "  duplicates were dropped!")