Получить число из диапазона a:b не входящее в список
Мне необходимо получить число в определенном диапазоне, например от 0 до 1000, которого нет в определенном списке.
Все что я придумал это вот такую рекурсивную функцию для маленького списка занятых чисел:
def get_number(banned_numbers):
number = random.randint(1,1000)
if number in banned_numbers:
return get_number(banned_numbers)
return number
Так что при заполнении списка она должна работать в разы медленнее и выдавать ошибки.
Я плохо разбираюсь в подобных алгоритмах, поэтому заранее спасибо за помощь
Ответы (1 шт):
Автор решения: Doffie
→ Ссылка
Уже в комментариях ответили:
random.choice(tuple(set(range(1, 1001)) - set(banned_numbers)))
Спасибо