питон - дубликат лототона на экстракторе

1
import random

lotto = []
while True:
    a = random.randint(1, 45)
    lotto.append(a)
    if lotto.count(a) == 2:
        continue
    if len(lotto) == 7:
        break
lotto.sort()
print(lotto)

Я хочу извлечь числа от 1 до 45 без дубликатов, но иногда два или три случайных числа перекрываются. благодаря помощи.

Теги:

2 ответа

0

Вы можете создать еще один список, который будет содержать все выбранные вами номера и будет проверять наличие дубликатов:

import random

lotto = []
# List that will hold all chosen numbers so far
dups = []
while True:
    a = random.randint(1, 45)
    # Check for duplicate number
    if a in dups:
        continue
    else:
        #Add it to both dups and lotto
        dups.append(a)
        lotto.append(a)

    if len(lotto) == 7:
        break

lotto.sort()
print(lotto)
0

Для этой цели существует random.sample:

lotto = sorted(random.sample(range(1, 46), 7))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню