62. Массивы 63. Алгоритмы обработки массивов
Скачать 1.09 Mb.
|
Реверс массиваfor i in range(N//2): c = A[i] A[i] = A[N-1-i] A[N-1-i] = c Варианты в стиле Python: for i in range(N//2): A[i], A[N-i-1]= A[N-i-1], A[i] A.reverse() Циклический сдвиг элементов
«Простое» решение: c = A[0] for i in range(N-1): A[i] = A[i+1] A[N-1] = c Что плохо? ? Почему не до N? ? Срезы в Python
A[1:3] [12, 5] A[2:3] [5] A[:3] [7, 12, 5] A[0:3] с начала A[3:N-2] [8,…,18,34] разрезы A[3:] [8,…,18,34,40,23] A[3:N] до конца A[:] [7,12,5,8,…,18,34,40,23] копия массива Срезы в Python – отрицательные индексы
A[1:-1] [12,5,8,…,18,34,40] разрезы A[1:N-1] A[-4:-2] [18, 34] A[N-4:N-2] Срезы в Python – шаг
A[1:6:2] [12, 8, 18] разрезы A[::3] [7, 8, 34] A[8:2:-2] [23, 34, 76] A[::-1] [23,40,34,18,76,8,5,12,7] реверс! A.reverse() шаг |