JavaRush /Курси /Модуль 1: Python Core /Динамічні масиви

Динамічні масиви

Модуль 1: Python Core
Рівень 15 , Лекція 9
Відкрита

10.1 Особливості динамічних масивів

Динамічні масиви — це структури даних, які можуть змінювати свій розмір під час виконання програми. Вони дозволяють ефективно керувати колекцією елементів, додавати та видаляти елементи без необхідності заздалегідь визначати розмір масиву.

У Python динамічним масивом є список (вбудований клас list), який дозволяє додавати, видаляти та змінювати елементи в довільній позиції.

Особливості динамічних масивів Python

Особливості динамічних масивів:

  • Змінюваний розмір: Динамічні масиви можуть збільшуватись і зменшуватись за потребою.
  • Швидкий доступ за індексом: Доступ до елементів здійснюється за постійний час O(1).
  • Автоматичне управління пам'яттю: Python автоматично керує виділенням та звільненням пам'яті для списків.
  • Зручні методи для роботи з елементами: Вбудовані методи дозволяють легко додавати, видаляти та змінювати елементи.

Приклад створення та використання динамічного масиву в Python:


# Створення списку
dynamic_array = [1, 2, 3, 4, 5]

# Додавання елемента
dynamic_array.append(6)
print(dynamic_array)  # Вивід: [1, 2, 3, 4, 5, 6]

# Видалення елемента
dynamic_array.remove(3)
print(dynamic_array)  # Вивід: [1, 2, 4, 5, 6]

# Доступ за індексом
print(dynamic_array[2])  # Вивід: 4

# Зміна елемента
dynamic_array[2] = 10
print(dynamic_array)  # Вивід: [1, 2, 10, 5, 6]

10.2 Переваги та недоліки динамічних масивів

У динамічних масивів є свої переваги та недоліки. Розглянемо їх докладніше.

Переваги:

  • Гнучкість: Динамічні масиви можуть змінювати розмір залежно від потреб програми, що дозволяє ефективно керувати пам'яттю та обробляти змінні обсяги даних.
  • Швидкий доступ за індексом: Як і статичні масиви, динамічні масиви дозволяють швидко отримувати доступ до елементів за індексом за постійний час O(1).
  • Зручність використання: Вбудовані методи Python для роботи зі списками (наприклад, append, remove, insert) спрощують маніпуляції з елементами та роблять код більш читабельним та підтримуваним.
  • Автоматичне управління пам'яттю: Python автоматично керує пам'яттю для динамічних масивів, що звільняє програміста від необхідності вручну виділяти та звільняти пам'ять.

Недоліки:

  • Перерозподіл пам'яті: При збільшенні розміру динамічного масиву може знадобитися перерозподіл пам'яті, що супроводжується копіюванням елементів в нову область пам'яті. Це може тимчасово сповільнити виконання програми.
  • Витрати на вставку та видалення елементів: Вставка та видалення елементів в середині масиву потребують зміщення елементів, що займає O(n) часу.
  • Трохи більші накладні витрати на управління: У порівнянні з низькорівневими мовами, такими як C, динамічні масиви в Python мають додаткові накладні витрати, пов'язані з автоматичним управлінням пам'яттю та обробкою виключень.

10.3 Приклади використання та застосування

Розглянемо декілька прикладів використання динамічних масивів у Python.

1. Реалізація динамічного списку завдань:


tasks = []

# Додавання завдань
tasks.append("Task 1")
tasks.append("Task 2")
tasks.append("Task 3")

# Виконання завдання та видалення його зі списку
completed_task = tasks.pop(0)
print(f"Completed: {completed_task}")
print(f"Remaining tasks: {tasks}")  # Вивід: Remaining tasks: ['Task 2', 'Task 3']

2. Реалізація динамічного списку об'єктів:


students = []

# Додавання студентів
students.append("Alice")
students.append("Bob")
students.append("Charlie")

# Видалення студента
students.remove("Bob")
print(f"Students after removal: {students}")  # Вивід: Students after removal: ['Alice', 'Charlie']

# Додавання студента на певну позицію
students.insert(1, "David")
print(f"Students after insertion: {students}")  # Вивід: Students after insertion: ['Alice', 'David', 'Charlie']
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ