Получить число из диапазона 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)))

Спасибо

→ Ссылка