Добавить в корзинуПозвонить
Найти в Дзене

Массив в Python просто и понятно

Давай разберёмся, что такое массивы и как с ними работать в Python. Чтобы было ясно и без лишних трюков, всё объясню на примерах и простых сравнениях. Что такое массив в Python Как создать первый список nums = [1, 2, 3, 4, 5] words = ["яблоко", "банан", "вишня"] mixed = [1, "два", 3.0, True] Основные операции с списками print(nums[0]) # 1
print(nums[2]) # 3 nums[1] = 22
print(nums) # [1, 22, 3, 4, 5] nums.append(6)
print(nums) # [1, 22, 3, 4, 5, 6] nums.extend([7, 8])
print(nums) # [1, 22, 3, 4, 5, 6, 7, 8] nums.insert(2, "три")
print(nums) # [1, 22, 'три', 3, 4, 5, 6, 7, 8] last = nums.pop()
print(last) # 8
print(nums) # [1, 22, 'три', 3, 4, 5, 6, 7] first = nums.pop(0)
print(first) # 1
print(nums) # [22, 'три', 3, 4, 5, 6, 7] nums.remove('три')
print(nums) # [22, 3, 4, 5, 6, 7] len(nums) # 6 print(4 in nums) # True slice = nums[1:3] # элементы с индекса 1 до 2
print(slice) # [3, 4] Перебор элементов for item in nums:
print(item) for i in range(len(nums)):
print

Давай разберёмся, что такое массивы и как с ними работать в Python. Чтобы было ясно и без лишних трюков, всё объясню на примерах и простых сравнениях.

Что такое массив в Python

  • В Python "массив" чаще называют списком (list). Это упорядоченная коллекция элементов.
  • Элементы списка можно менять: добавлять, удалять, изменять.
  • Элементы списка могут быть разных типов, но чаще они однотипны по логике (например, числа или строки).

Как создать первый список

  • Простой список чисел:

nums = [1, 2, 3, 4, 5]

  • Список слов:

words = ["яблоко", "банан", "вишня"]

  • Смешанный список (для примера, не рекомендую без нужды):

mixed = [1, "два", 3.0, True]

Основные операции с списками

  • Доступ к элементам по индексу (нумерация начинается с 0):

print(nums[0]) # 1
print(nums[2]) # 3

  • Изменение элемента:

nums[1] = 22
print(nums) # [1, 22, 3, 4, 5]

  • Добавление элементов: append — добавляет один элемент в конец:

nums.append(6)
print(nums) # [1, 22, 3, 4, 5, 6]

  • extend — добавляет несколько элементов из другого итератора:

nums.extend([7, 8])
print(nums) # [1, 22, 3, 4, 5, 6, 7, 8]

  • insert — вставка по индексу:

nums.insert(2, "три")
print(nums) # [1, 22, 'три', 3, 4, 5, 6, 7, 8]

  • Удаление элементов: pop — удаляет элемент по индексу и возвращает его (по умолчанию последний):

last = nums.pop()
print(last) # 8
print(nums) # [1, 22, 'три', 3, 4, 5, 6, 7]

  • pop(index) — удалить конкретный элемент по индексу:

first = nums.pop(0)
print(first) # 1
print(nums) # [22, 'три', 3, 4, 5, 6, 7]

  • remove — удалить первый встречающийся элемент по значению:

nums.remove('три')
print(nums) # [22, 3, 4, 5, 6, 7]

  • Длина списка:

len(nums) # 6

  • Поиск элемента:in / not in:

print(4 in nums) # True

  • Срезы:

slice = nums[1:3] # элементы с индекса 1 до 2
print(slice) # [3, 4]

Перебор элементов

  • Простым способом:

for item in nums:
print(item)

  • С индексами:

for i in range(len(nums)):
print(i, nums[i])

  • В списковых включениях (генераторы списков):

squared = [x*x for x in range(6)]
print(squared) # [0, 1, 4, 9, 16, 25]

Ключевые полезные методы списков

  • sort() — сортирует список на месте:

numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers) # [1, 2, 5, 9]

  • sorted() — возвращает новый отсортированный список:

orig = [3, 1, 4]
sorted_list = sorted(orig)
print(orig) # [3, 1, 4]
print(sorted_list) # [1, 3, 4]

  • reverse() и reversed():

numbers = [1, 2, 3]
numbers.reverse()
print(numbers) # [3, 2, 1]

for x in reversed(numbers):
print(x) # 1, 2, 3 (по очереди)

  • copy() — копирование списка:

a = [1, 2, 3]
b = a.copy()
b.append(4)
print(a) # [1, 2, 3]
print(b) # [1, 2, 3, 4]

  • deepcopy — если внутри есть вложенные списки:

import copy
orig = [[1, 2], [3, 4]]
clone = copy.deepcopy(orig)

Работа со вложенными списками

  • Пример двумерного массива (матрицы):

matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1][2]) # 6

  • Итерация по строкам:

for row in matrix:
print(row)

Когда стоит использовать списки

  • Когда нужен упорядоченный набор элементов, к которым нужна простая индексация и модификация.
  • Когда важна скорость и простота использования в повседневных задачах.
  • Для численных операций часто применяют numpy-массивы, но это другой уровень и требует установки библиотеки.

Сравнение с кортежами и словарями (чтобы не путаться)

  • Список (list): изменяемый упорядоченный набор.
  • Кортеж (tuple): неизменяемый упорядоченный набор.
  • Словарь (dict): неупорядоченная по умолчанию коллекция пар ключ-значение (в Python 3.7+ сохраняет порядок вставки).
  • Примеры:

t = (1, 2, 3) # кортеж
d = {"a": 1, "b": 2} # словарь