Одномерные массивы
Понятие одномерного массива, индексация элементов (0-based), создание и заполнение списков в Python. Обход массива, поиск суммы, минимума, максимума. Решение задач ОГЭ на обработку массивов.
Одномерные массивы
Определение
Массив — упорядоченная совокупность однотипных элементов, каждый из которых имеет уникальный номер (индекс). В Python массивы реализованы встроенным типом list (список).
Индексация — нумерация элементов массива. В Python индексация начинается с 0:
- Первый элемент:
arr[0] - Последний элемент:
arr[len(arr)-1]илиarr[-1]
Формула
Создание массива
# Явное перечисление
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] = x | a[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 |
Важно!
- Индексация начинается с 0.
arr[0]— первый элемент,arr[len(arr)-1]— последний. - Выход за границы массива вызывает ошибку
IndexError. Всегда проверяйте, что индекс < len(arr). arr[-1]— последний элемент,arr[-2]— предпоследний. Отрицательные индексы отсчитываются с конца.append()добавляет элемент в конец списка. Не путайте сinsert()(вставка по индексу).- При обходе по индексу не изменяйте длину массива (не удаляйте и не добавляйте элементы) — это приводит к пропуску элементов.
- В задачах ОГЭ внимательно следите за границами циклов при обходе массива.
Примеры вопросов из тренажёра
-
Q: Дан массив arr = [10, 20, 30, 40, 50]. Чему равен arr[2]?
A: верный ответ — 30
Объяснение: Индексация с 0: arr[0]=10, arr[1]=20, arr[2]=30.
-
Q: Дан массив arr = [7, 4, 9, 2, 5]. Чему равен arr[-1]?
A: верный ответ — 5
Объяснение: Отрицательные индексы отсчитываются с конца: arr[-1] — последний элемент, то есть 5.
-
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.
-
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.
-
Q: Как получить последний элемент массива arr?
A: верный ответ — arr[len(arr)-1]
Объяснение: Последний индекс = len(arr)-1. Также можно использовать arr[-1].