Здравствуйте, у меня есть список исключений
ext = 5, 10, 21, 51, 101, 41, 11, 31, 22, 71
и
rnd = random.randint(1, 102)
Мне нужно, чтобы
random.randint
учитывал исключения из списка
ext
. Я пробовал два способа: 1 - сделать при помощи if, else -
rx = re.compile('\d+')
if rnd in rx.findall(str(ext)):
# возвращаемся к функции с рандомом
else:
# выполняем код
Однако, если список исключений большой, т.е в него входит к примеру 90 % от всех чисел, которые можно сгенерировать
ext = 1,2,3,4,5,6,7,8,9,10,11 ... 99,100,101
то тогда python выводит ошибку о том, что достигнуто максимальное количество "обращений" к его объекту. Это тоже можно решить, но при замедлении кода, он как не странно будет работать медленнее, а мне этого не надо.
И второй способ, который казался спасением -
rnd1 = [i for i in range(1, 102)]
rnd1.remove(ext)
rnd = random.choice(rnd1)
однако, в
rnd1.remove
можно поместить только 1 значение int. Была мысль сделать это при помощи цикла, но есть подозрение, что при больших значениях это будет ещё медленнее чем первый способ..
Помогите пожалуйста, как это можно решить?