无重复数字的Python列表
我正在制作一个宾果卡,但我发现用randint生成的数字总是有重复的。这一次可能在b中有不同的数字,但下次又会出现几个重复的数字。
我该怎么做才能生成没有重复的数字呢?
谢谢。
import random
class Card:
def __init__(self):
self.b = []
self.i = []
self.n = []
self.g = []
self.o = []
for x in range(0, 5):
r = random.randint(1, 15)
self.b.append(r)
print(self.b)
print(self.i)
print(self.n)
print(self.g)
print(self.o)
p = Card()
5 个回答
1
如果你在1到15之间随机选择五个整数,可能会出现一些重复的数字。你可以试着选择不重复的数字,也就是每次选择后不把它放回去:
self.b = random.sample(range(1,16),5)
2
你觉得这样怎么样:
while len(self.b) < 5:
r = random.randint(1, 15)
if not r in self.b:
self.b.append(r)
5
来自 这个回答
self.b = random.sample(range(1, 16), 5)