Как вложить список на основе возрастающих последовательностей и игнорировать перекрывающиеся диапазоны ⇐ Python
Как вложить список на основе возрастающих последовательностей и игнорировать перекрывающиеся диапазоны
Я хочу просмотреть список чисел и найти последовательности, в которых числа возрастают. Для каждой из этих последовательностей я хочу извлечь минимальное и максимальное значения и представить каждую последовательность как диапазон [мин, макс]. Если существует возрастающая последовательность, которая полностью содержится в ранее определенной большей возрастающей последовательности, меньшую последовательность следует игнорировать. Затем я хочу вернуть список этих диапазонов, представляющих идентифицированные последовательности.
Это мой вклад
мой список = [2, 7, 8, 11, 7, 9, 10, 15, 22, 30, 32] [*]от 2 до 11 оно увеличивается, поэтому нам нужно взять минимум максимум [2, 11] [*]от 7 до 10 оно увеличивается, но нам нужно игнорировать это, потому что диапазон (от 7 до 10) включены в первый полученный список. [*]от 15 до 32 оно увеличивается, поэтому нам нужно взять минимум максимум: [15, 32] Окончательный список должен быть: [[2, 11], [15, 32]]
Я пробовал что-то вроде ниже, но это не так:
final = [] ми = мой список[0] ма = мой список[1] для i, j в zip(mylist, mylist[1:]): если я < j: ма = j Элиф я > j: ми = я продолжать элиф ми == ма: продолжать Final.append([ми, ма]) финальный [[1, 10], [1, 11], [1, 23], [23, 23], [23, 30], [23, 43], [23, 43], [23, 55]]
Я хочу просмотреть список чисел и найти последовательности, в которых числа возрастают. Для каждой из этих последовательностей я хочу извлечь минимальное и максимальное значения и представить каждую последовательность как диапазон [мин, макс]. Если существует возрастающая последовательность, которая полностью содержится в ранее определенной большей возрастающей последовательности, меньшую последовательность следует игнорировать. Затем я хочу вернуть список этих диапазонов, представляющих идентифицированные последовательности.
Это мой вклад
мой список = [2, 7, 8, 11, 7, 9, 10, 15, 22, 30, 32] [*]от 2 до 11 оно увеличивается, поэтому нам нужно взять минимум максимум [2, 11] [*]от 7 до 10 оно увеличивается, но нам нужно игнорировать это, потому что диапазон (от 7 до 10) включены в первый полученный список. [*]от 15 до 32 оно увеличивается, поэтому нам нужно взять минимум максимум: [15, 32] Окончательный список должен быть: [[2, 11], [15, 32]]
Я пробовал что-то вроде ниже, но это не так:
final = [] ми = мой список[0] ма = мой список[1] для i, j в zip(mylist, mylist[1:]): если я < j: ма = j Элиф я > j: ми = я продолжать элиф ми == ма: продолжать Final.append([ми, ма]) финальный [[1, 10], [1, 11], [1, 23], [23, 23], [23, 30], [23, 43], [23, 43], [23, 55]]
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение