Одномерные массивы

Понятие одномерного массива, индексация элементов (0-based), создание и заполнение списков в Python. Обход массива, поиск суммы, минимума, максимума. Решение задач ОГЭ на обработку массивов.

Одномерные массивы

Определение

Массив — упорядоченная совокупность однотипных элементов, каждый из которых имеет уникальный номер (индекс). В Python массивы реализованы встроенным типом list (список).

Индексация — нумерация элементов массива. В Python индексация начинается с 0:

Формула

Создание массива

# Явное перечисление
arr = [10, 20, 30, 40, 50]

# Пустой массив
arr = []

# С помощью list()
arr = list(range(5))  # [0, 1, 2, 3, 4]

# Заполнение в цикле
arr = []
for i in range(5):
    arr.append(i * 2)  # [0, 2, 4, 6, 8]

Обход массива

# По значениям
for x in arr:
    print(x)

# По индексам
for i in range(len(arr)):
    print(f"arr[{i}] = {arr[i]}")

# С индексом и значением
for i, x in enumerate(arr):
    print(f"arr[{i}] = {x}")

Обработка массива

# Сумма
s = 0
for x in arr:
    s += x

# Минимум
mn = arr[0]
for x in arr:
    if x < mn:
        mn = x

# Максимум
mx = arr[0]
for x in arr:
    if x > mx:
        mx = x

# Подсчёт по условию
count = 0
for x in arr:
    if x > 0:
        count += 1

Пример

Пример 1: создание и вывод массива

# Массив из 10 случайных чисел
import random
a = []
for i in range(10):
    a.append(random.randint(1, 100))
print("Массив:", a)
print("Длина:", len(a))
print("Первый:", a[0], "Последний:", a[-1])

Пример 2: сумма и среднее арифметическое

marks = [4, 5, 3, 5, 4, 4, 5, 3]
total = 0
for m in marks:
    total += m
avg = total / len(marks)
print(f"Сумма: {total}, Среднее: {avg:.2f}")

Трассировка: marks = [4,5,3,5,4,4,5,3], len=8. total=4→9→12→17→21→25→30→33. avg=33/8=4.125.

Пример 3: поиск минимального и максимального

nums = [15, 8, 23, 4, 42, 16, 11]
mn = nums[0]
mx = nums[0]
for x in nums:
    if x < mn:
        mn = x
    if x > mx:
        mx = x
print(f"Мин: {mn}, Макс: {mx}")

Трассировка: mn=15, mx=15. x=8 → mn=8. x=23 → mx=23. x=4 → mn=4. x=42 → mx=42. x=16, x=11 — без изменений. Ответ: Мин: 4, Макс: 42.

Пример 4: подсчёт элементов по условию

temps = [-5, 3, 0, -2, 7, -1, 4, -3, 6, 0]
negative = 0
positive = 0
zero = 0
for t in temps:
    if t < 0:
        negative += 1
    elif t > 0:
        positive += 1
    else:
        zero += 1
print(f"Отрицательных: {negative}, Положительных: {positive}, Нулевых: {zero}")

Пример 5: фильтрация — новый массив из чётных

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = []
for x in nums:
    if x % 2 == 0:
        evens.append(x)
print("Чётные:", evens)  # [2, 4, 6, 8, 10]

Обозначения

ОперацияСинтаксисПример
Создание[эл1, эл2, ...]a = [1, 2, 3]
Доступ по индексуarr[i]a[0] → 1
Длинаlen(arr)len(a) → 3
Добавлениеarr.append(x)a.append(4)
Изменениеarr[i] = xa[1] = 10
Срезarr[i:j]a[1:3] → [2, 3]
Суммаsum(arr)sum(a) → 6
Минимумmin(arr)min(a) → 1
Максимумmax(arr)max(a) → 3

Важно!

Примеры вопросов из тренажёра

  1. Q: Дан массив arr = [10, 20, 30, 40, 50]. Чему равен arr[2]?

    A: верный ответ — 30

    Объяснение: Индексация с 0: arr[0]=10, arr[1]=20, arr[2]=30.

  2. Q: Дан массив arr = [7, 4, 9, 2, 5]. Чему равен arr[-1]?

    A: верный ответ — 5

    Объяснение: Отрицательные индексы отсчитываются с конца: arr[-1] — последний элемент, то есть 5.

  3. Q: Что выведет программа? arr = [1, 2, 3, 4, 5] s = 0 for x in arr: if x % 2 == 0: s += x print(s)

    A: верный ответ — 6

    Объяснение: Чётные элементы: 2 и 4. Сумма = 2 + 4 = 6.

  4. Q: Что выведет программа? arr = [5, 8, 3, 9, 2] mn = arr[0] for x in arr: if x < mn: mn = x print(mn)

    A: верный ответ — 2

    Объяснение: Программа ищет минимальный элемент. mn=5, затем 8>5, 3<5→mn=3, 9>3, 2<3→mn=2. Ответ: 2.

  5. Q: Как получить последний элемент массива arr?

    A: верный ответ — arr[len(arr)-1]

    Объяснение: Последний индекс = len(arr)-1. Также можно использовать arr[-1].

Пройти тему «Одномерные массивы» в приложении