У меня есть список, который выглядит следующим образом:Получить диапазон индекса списка из списка в зависимости от значений
Values = [0,0,1,1,1,1,1,2,2,2,3,3,3,3,3,3,4,4,4,5,5,5,5]
Я хотел бы получить индекс колеблется зависимости от значений. Например, для значения «0» Я хотел бы получить:
IndexRange0 = range(0,2) = [0,1]
#the element "0" is taking the positions 0 and 1 of the list "Values"
для значения «1» Я хотел бы получить:
IndexRange1 = range(2,7) = [2,3,4,5,6]
и т.д. В конце концов, я хотел бы получить «список этих диапазонов», скажем:
FinalOutput = [IndexRange0, IndexRange1, .... IndexRange5]
Я понятия не имею, как сделать это без использования дорогостоящих конструкций с петлями и плохими обходными. Есть идеи?
Примечание: цифры будут постоянно увеличиваться. Длина диапазонов - это переменные (на этот раз есть 2 «нули», в следующий раз они могут быть 5 и т. Д.), Но его порядок всегда увеличивается один за другим (будет набор из 0, затем набор из 1, затем набор из 2 и т. д. до целого числа нефиксированных n). Заранее спасибо за вашу помощь.
Я не могу понять, что вы называете «дорогими конструкциями». Это проблема O (N) с прямым решением. –