无重复数字的Python列表

1 投票
5 回答
1584 浏览
提问于 2025-04-17 19:21

我正在制作一个宾果卡,但我发现用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)

撰写回答