Найти в Дзене

Массивы (списки) в Python: хранение и обработка больших объёмов данных

Массив — это структура данных, предназначенная для хранения последовательности элементов одного типа (например, чисел, строк, логических значений). Основное назначение массива — упростить работу с большим количеством однотипных данных. Вместо того чтобы создавать отдельные переменные (a1, a2, a3, …), можно использовать одну переменную-массив, к элементам которой обращаются по индексу. Массивы позволяют: 💡 В языке Python массивы реализованы через списки (list). Они являются изменяемыми — их содержимое можно менять после создания. В Python массивы (списки) создаются несколькими способами. Это самый простой способ — просто перечислить значения в квадратных скобках через запятую. Пустой список полезен, когда вы не знаете заранее, сколько элементов будет, но планируете добавлять их постепенно. ⚠️ Важно: этот способ безопасен только для неизменяемых значений (числа, строки). Для изменяемых объектов (например, списков) он может привести к неожиданному поведению. Запись на занятия здесь: htt
Оглавление

1. Что такое массив? Зачем он нужен?

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

Основное назначение массива — упростить работу с большим количеством однотипных данных. Вместо того чтобы создавать отдельные переменные (a1, a2, a3, …), можно использовать одну переменную-массив, к элементам которой обращаются по индексу.

Массивы позволяют:

  • эффективно хранить тысячи и миллионы значений;
  • легко перебирать все элементы;
  • выполнять вычисления над целыми наборами данных (например, находить сумму, среднее, максимум);
  • моделировать реальные объекты: таблицы, векторы, матрицы, колоды карт, списки учеников и т.д.
💡 В языке Python массивы реализованы через списки (list). Они являются изменяемыми — их содержимое можно менять после создания.

2. Способы создания массивов

В Python массивы (списки) создаются несколькими способами.

2.1. Прямое перечисление элементов

-2

Это самый простой способ — просто перечислить значения в квадратных скобках через запятую.

2.2. Создание пустого массива

-3

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

2.3. Создание массива заданной длины с одинаковыми значениями

-4
⚠️ Важно: этот способ безопасен только для неизменяемых значений (числа, строки). Для изменяемых объектов (например, списков) он может привести к неожиданному поведению.

2.4. Постепенное заполнение через append()

-5
-6

Запись на занятия здесь: https://t.me/nka39

3. Индексация: как обращаться к элементам

Каждый элемент массива имеет индекс — целое число, указывающее его позицию.

  • Индексы начинаются с 0.
  • Последний элемент имеет индекс len(a) - 1.

Пример:

-7

Ошибки индексации

❌ Ошибка 1: выход за границы массива

-8

❌ Ошибка 2: отрицательные индексы без понимания

Отрицательные индексы разрешены и означают отсчёт с конца:

-9

Но если использовать слишком большое отрицательное число:

-10

❌ Ошибка 3: изменение несуществующего элемента

-11

Пустой список не содержит элементов, поэтому нельзя присвоить значение по индексу. Нужно использовать append().

4. Итерации по массиву

Есть два основных способа перебора элементов.

4.1. Перебор по индексам

-12

Этот способ нужен, когда важно знать позицию элемента.

4.2. Перебор по значениям

-13

Этот способ короче и чище, если позиция не важна.

💡 Выбирайте способ в зависимости от задачи. Если нужно изменять элементы — используйте индексы. Если только читать — можно итерироваться по значениям.

5. Встроенные функции и методы для работы с массивами

5.1. Функции (не зависят от конкретного списка)

-14

Пример:

-15

5.2. Методы (вызываются через точку)

-16

Пример:

-17

6. Разбор примеров

Пример 1. Моделирование колоды карт

-18

Объяснение:

  • Два вложенных цикла перебирают все комбинации масти и ранга.
  • Каждая карта — строка вида "Ace of Spades".
  • random.randrange(len(deck)) гарантирует, что индекс всегда корректен.

Пример 2. Выборка без замены

Задача: выбрать m уникальных случайных чисел из диапазона 0..n-1.

-19

Объяснение:

  • list(range(n)) создаёт массив [0, 1, ..., n-1].
  • Алгоритм перемешивания Фишера–Йейтса: на шаге i выбирается случайный элемент из оставшихся (i..n-1) и меняется местами с i-м.
  • После m шагов первые m элементов — случайная выборка без повторений.

Пример 3. Решето Эратосфена

Задача: найти все простые числа до n.

-20

Объяснение:

  • Массив is_prime хранит флаги: True, если число простое.
  • Начинаем с 2. Если i простое, помечаем все его кратные как составные.
  • Используется вложенный цикл с шагом i: range(i*i, n+1, i).

7. Практические задания для самостоятельной работы

  1. Создание массива
    Создайте массив из 10 случайных целых чисел от 1 до 100. Выведите его.
  2. Поиск максимума
    Найдите наибольший элемент в массиве, не используя функцию max().
  3. Подсчёт чётных
    Посчитайте, сколько чётных чисел в массиве.
  4. Разворот массива
    Создайте новый массив, содержащий элементы исходного в обратном порядке (без использования reverse()).
  5. Удаление дубликатов
    Дан массив строк. Создайте новый массив, содержащий только уникальные строки в том же порядке.
  6. Двумерный массив
    Создайте таблицу умножения 5×5 и выведите её в виде матрицы.
  7. Простые числа
    Напишите программу, которая выводит все простые числа до 100, используя решето Эратосфена.

Если Вам информация была для Вас полезна, то можно поддержать автора, нажав на кнопку "Поддержать".

Подпишитесь на канал и научитесь решать все задания ЕГЭ по информатике!

Удачи на экзамене!

Записаться ко мне на занятия можно тут https://t.me/nka39