@nedland

Как циклом Python for пройти несколько (сотен) range?

Есть необходимость проходить циклом заранее неизвестное число range, и его границы от и до (формируется динамически). Очень большой разброс значений, к примеру range(1,10), range(253,1100), range(13230, 13670), range(1000000, 9999999), поэтому не могу взять минимальное и максимальное и пройти одним. Таких range может быть 100 в различном порядке, но всегда от меньшего к большему. И обязательное условие - в итоге пройти одним циклом все значения.

На данный момент я решил эту "задачу" путём перебора циклом каждого range по отдельности, дописывая значение в список (list = []). Но получается, что у меня сначала идёт N количество циклов и после цикл for i in list: что повторяет количество в N циклах, но уже в ходе одного цикла.

Меня смущает так сказать "удвоение" действий. Может подскажите, существует ли вариант одним циклом проходить сразу все range?

P.S. ребят, за меня писать код не нужно, просто словами идею или логику подсказать, может сталкивались, писать буду сам, как бы вы решали "задачу"?
  • Вопрос задан
  • 154 просмотра
Решения вопроса 2
Vindicar
@Vindicar
RTFM!
Ответ написан
Комментировать
@U235U235
Я бы воспользовался библиотекой portion (особенно актуально, если интервалы могут пересекаться)
import portion as P
print(*P.iterate(P.closed(1.2, 6.9)|P.closed(8,11), step=1, base=int))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Тут уже предложили всякие питонистые подходы через itertools. Но если их не знать, то подойдет и просто 2 вложенных цикла. Внешний перебирает интервал, а внутренний проходит его значения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы