Перебор элементов массива

28.08.2023 0 Автор : Марина Николаевна
Перебор элементов массива

Перебор элементов массива

Перебор элементов массива — это просмотр в цикле всех элементов массива и, если нужно, выполнение с каждым из них некоторые операции. Для этого удобнее всего использовать цикл по переменной, значение которой изменяется от минимального до максимального индекса.

Далее везде будем считать, что N — это текущий размер массива А, с которым работает программист, т.е. то значение, которое возвращает вызов функции len ( A ).

Для массива из N элементов  цикл будет выглядеть следующим образом:

for i  in range (N)
    ...   # работаем с А[i]

Здесь вместо  многоточия можно добавлять операторы, которые работают с элементом А [ i ] (в том числе и изменяют его.

Видно, что благодаря использованию массива программисту достаточно описать, что делать с одним элементом, и поместить эти действия внутрь цикла, перебирающего значения индексов. Если бы программист применял простые переменные, то пришлось бы ему оптсывать необходимые действия для каждого элемента (правда, при этом цикл бы непонадобился).

Программа:

for i in range (N):
    A[i] = i

заполняет массив целыми числами от 1 до N-1 (эту последовательность строит функция range). Здесь программист предполагает , что память для N элементов массива уже выделена, иначе обращение к несуществующему элементу вызовет ошибку и аварийное завершение программы.

Теперь заполним массив первыми N натуральными числами в обратном порядке: в первый элемент массива должно быть записано число N, во второй — число N-1, а в последний -единица.

Сначала запишем в развернутом виде (без цикла) операторы, которые должны быть выполнены:

Теперь составляется цикл, в котором значение, присваиваемое очередному элементу, пока обозначим через X:

Величина X должна  изменяться при переходе к следующему элементу. Её начальное знвчение равно N, конечное значение равно 1, с каждым повторением цикла оно уменьшается на 1. Можно записать цикл так:

А можно цикл значительно упростить, заметив, что при увеличении индекса элемента i на единицу значение Х  уменьшается, причем тоже на единицу. Поэтому сумма i+X остается постоянной.

Для первого элемента массива необходимо получить i+X = N. Выразив   X из этого уравнения, находим, что элемент с номером i  принимает значение N-i , поэтому цикл записывается так:

for i in range (N):
    A[i] = N - i

Предположим, что массив заполнен и увеличим все его элементы на единицу. Это значит, что нужно заменить значение элемента A [ i ]  на  A [ i + 1 ]: 

for i in range (N):
    A[i] +=1

Обращение к элементу массива можно изучить по ссылке.

Генераторы ( к теме "Перебор элементов массива")

В большинстве языков программирования используются методы заполнения массивов. Многие задачи решаются с использованием языка программирования Python надежно и кратко.

Две операции, такие как создание и заполнение массива, объединяется в одно с помощью генератора. Генератор  — это выражение, которое напоминает цикл:

А = [i for i in range(N)]

Цикл for i in range (N)  перебирает все значения i от 0 до N-1.  Выражение перед словом for (в данном случае — i) — это то, что записывается в очередной элемент массива для каждого i.

Массив в примере заполняется значениями, которые последовательно принимает переменная i, т.е. при N = 10 мы построим такой массив:

А = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Тот же результат получится, если использовать функцию list для того, чтобы создать список из данных, которые получаются с помощью функции range:

А = list( range (N))

Для заполнения массива квадратами этих чисел можно использовать  такой генератор:

А = [ i*i for i in range (N)]

Условие отбора можно добавить в конце записи генератора. В массив, в этом случае, включены лишь те элементы, перебираемые в цикле, которые удовлетворяют этому условию.

Примером можно  назвать генератор , который составляет массив из всех чисел в диапазоне от 0 до 99,  которые делятся на 7:

А = [ i for i in range (100)
    if i % 7 == 0)]

Длина этого массива будет меньше 100, и цикл:

for i in range (100)
print ( A[i])

приведет к ошибке — выходу за границы массива.

информация по выводу массива по ссылке.