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 без дубликатов, но иногда два или три случайных числа перекрываются. благодаря помощи.
Вы можете создать еще один список, который будет содержать все выбранные вами номера и будет проверять наличие дубликатов:
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)
Для этой цели существует random.sample
:
lotto = sorted(random.sample(range(1, 46), 7))