Прокручивание двузначного массива до его сортировкиPython

Программы на Python
Anonymous
Прокручивание двузначного массива до его сортировки

Сообщение Anonymous »

У меня есть массив, состоящий из двух значений a и b. (В моем случае это строки). Массив в физической интерпретации является периодическим, поэтому если N — длина массива arr, то arr[n+N]=arr[n]. Значения смежны в этом периодическом смысле. Как мне свернуть массив так, чтобы он имел форму [a, a, ..., a, b, ..., b, b], т.е. отсортирован или сгруппирован на две части в контексте определения массива (физически он останется прежним, потому что я таким же образом переверну и физическую величину, меткой которой является этот массив)?
Пример:

Код: Выделить всё

a, b = 'r', 'k'
a_ = a
arr = [a, a, b, b, b, b, b, a_, a_, a_]
Я использовал a_ для разграничения позиции в физическом смысле, в противном случае значение в массиве такое же.
Желаемый результат: [a_, a_, a_, a, a, b, b, b, b, b]
Я попробовал np.roll(arr, len(arr) - arr.index( a)), но это не учитывает периодичность и, следовательно, возвращает мне тот же массив, если массив начинается с a.

Подробнее здесь: https://stackoverflow.com/questions/786 ... its-sorted

Вернуться в «Python»