Python

Как создать массив в Python: список, array и NumPy простыми словами

В Python под «массивом» чаще всего имеют в виду обычный список list. Он создается через квадратные скобки и может хранить несколько значений в одном имени

numbers = [10, 20, 30, 40]

print(numbers)

Результат:

[10, 20, 30, 40]

Если вы только начинаете, используйте именно список. В учебных задачах «создать массив», «создать список», «создать набор чисел» почти всегда решается через list

Как создать пустой массив

Пустой список создается так:

numbers = []

Потом в него можно добавлять элементы через append()

numbers = []

numbers.append(10)
numbers.append(20)
numbers.append(30)

print(numbers)

Результат:

[10, 20, 30]

Такой вариант удобен, когда значения появляются постепенно: пользователь вводит числа, программа читает файл, цикл что-то считает и добавляет результат в список

Как создать массив строк

Список может хранить не только числа, но и строки:

names = ["Анна", "Илья", "Мария"]

print(names)

Получить первый элемент можно по индексу 0:

print(names[0])

Результат:

Анна

В Python индексы начинаются с нуля. Первый элемент имеет индекс 0, второй — 1, третий — 2

Как создать массив из чисел от 1 до 10

Если нужны числа по порядку, удобно использовать range()

numbers = list(range(1, 11))

print(numbers)

Результат:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Правая граница в range(1, 11) не включается, поэтому чтобы получить числа до 10, пишем 11

Как создать двумерный массив

Двумерный массив в Python обычно делают как список списков. Например, таблица 3 на 3:

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

print(table[0][0])
print(table[1][2])

Результат:

1
6

table[0] берет первую строку, а table[0][0] берет первый элемент первой строки

Важная ошибка с двумерными списками

Новички иногда пишут так:

table = [[0] * 3] * 3
table[0][0] = 1

print(table)

Результат может удивить:

1, 0, 0], [1, 0, 0], [1, 0, 0

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

table = [[0 for _ in range(3)] for _ in range(3)]
table[0][0] = 1

print(table)

Теперь изменится только один элемент:

1, 0, 0], [0, 0, 0], [0, 0, 0

А что такое array.array

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

from array import array

numbers = array("i", [1, 2, 3, 4])

print(numbers)

"i" означает целые числа. Такой массив строже обычного списка: он рассчитан на элементы одного типа. Если вы просто решаете учебную задачу, обычный list почти всегда понятнее

Когда нужен NumPy

Если вы занимаетесь анализом данных, математикой, машинным обучением или большими таблицами чисел, часто используют NumPy-массивы. Это уже не базовый список, а отдельная библиотека

import numpy as np

numbers = np.array([1, 2, 3, 4])

print(numbers * 2)

Результат:

[2 4 6 8]

В обычном списке numbers * 2 повторил бы список два раза, а в NumPy умножение применяется к каждому числу. Поэтому NumPy удобен для расчетов, но для первых задач по Python начинать лучше с list

Как выбрать вариант

Если нужно просто хранить несколько значений, берите list

Если нужна таблица, берите список списков

Если нужно компактно хранить числа одного типа без внешних библиотек, можно посмотреть array.array

Если нужны серьезные числовые вычисления, таблицы и векторные операции, берите NumPy

Мини-практика

Создайте файл array_practice.py и сделайте список оценок:

marks = [5, 4, 5, 3, 4]

average = sum(marks) / len(marks)

print("Оценки:", marks)
print("Средняя оценка:", average)

После запуска добавьте еще одну оценку через append() и посмотрите, как изменится среднее значение. Потом попробуйте вывести первую оценку, последнюю оценку и количество оценок через len(marks)

Частые ошибки

Первая ошибка — искать в Python отдельный синтаксис массивов как в C или Java. В большинстве учебных задач нужен обычный список list

Вторая ошибка — забывать, что индексы начинаются с нуля. Последний элемент можно получить как items[-1]

Третья ошибка — создавать двумерный список через [[0] 3] 3. Внутренние строки будут связаны между собой, и изменение одной строки затронет остальные

Четвертая ошибка — использовать NumPy там, где хватило бы списка. NumPy мощный, но для первых задач он часто добавляет лишнюю сложность

Что почитать дальше по Python

Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x