CodeGym /Kursy /Python SELF PL /Tablice dynamiczne

Tablice dynamiczne

Python SELF PL
Poziom 52 , Lekcja 3
Dostępny

10.1 Cechy tablic dynamicznych

Tablice dynamiczne to struktury danych, które mogą zmieniać swój rozmiar podczas działania programu. Pozwalają one na efektywne zarządzanie kolekcją elementów, dodawanie i usuwanie elementów bez konieczności wcześniejszego określania rozmiaru tablicy.

W Pythonie listą dynamiczną jest lista (wbudowana klasa list), która pozwala na dodawanie, usuwanie i modyfikowanie elementów w dowolnej pozycji.

Cechy tablic dynamicznych w Pythonie

Cechy tablic dynamicznych:

  • Zmieniający się rozmiar: Tablice dynamiczne mogą się zwiększać i zmniejszać w razie potrzeby.
  • Szybki dostęp po indeksie: Dostęp do elementów jest realizowany w stałym czasie O(1).
  • Automatyczne zarządzanie pamięcią: Python automatycznie zarządza przydziałem i zwalnianiem pamięci dla list.
  • Wygodne metody do pracy z elementami: Wbudowane metody pozwalają łatwo dodawać, usuwać i modyfikować elementy.

Przykład tworzenia i użycia tablicy dynamicznej w Pythonie:


# Tworzenie listy
dynamic_array = [1, 2, 3, 4, 5]

# Dodawanie elementu
dynamic_array.append(6)
print(dynamic_array)  # Wyjście: [1, 2, 3, 4, 5, 6]

# Usuwanie elementu
dynamic_array.remove(3)
print(dynamic_array)  # Wyjście: [1, 2, 4, 5, 6]

# Dostęp po indeksie
print(dynamic_array[2])  # Wyjście: 4

# Zmiana elementu
dynamic_array[2] = 10
print(dynamic_array)  # Wyjście: [1, 2, 10, 5, 6]

10.2 Zalety i wady tablic dynamicznych

Tablice dynamiczne mają swoje zalety i wady. Przyjrzyjmy się im bliżej.

Zalety:

  • Elastyczność: Tablice dynamiczne mogą zmieniać rozmiar w zależności od potrzeb programu, co pozwala na efektywne zarządzanie pamięcią i przetwarzanie zmiennych ilości danych.
  • Szybki dostęp po indeksie: Podobnie jak tablice statyczne, tablice dynamiczne pozwalają na szybki dostęp do elementów po indeksie w stałym czasie O(1).
  • Wygodne użycie: Wbudowane metody Pythona do pracy z listami (np. append, remove, insert) ułatwiają manipulacje elementami i czynią kod bardziej czytelnym i łatwiejszym w utrzymaniu.
  • Automatyczne zarządzanie pamięcią: Python automatycznie zarządza pamięcią dla tablic dynamicznych, co zwalnia programistę z konieczności ręcznego przydziału i zwalniania pamięci.

Wady:

  • Przekształcenie pamięci: Przy zwiększaniu rozmiaru tablicy dynamicznej może być konieczne przekształcenie pamięci, co wiąże się z kopiowaniem elementów do nowego obszaru pamięci. Może to tymczasowo spowolnić działanie programu.
  • Koszt wstawiania i usuwania elementów: Wstawianie i usuwanie elementów w środku tablicy wymaga przesuwania elementów, co zajmuje O(n) czasu.
  • Nieco większe koszty ogólne zarządzania: W porównaniu z językami niskopoziomowymi, takimi jak C, tablice dynamiczne w Pythonie mają dodatkowe koszty związane z automatycznym zarządzaniem pamięcią i obsługą wyjątków.

10.3 Przykłady użycia i zastosowania

Przyjrzyjmy się kilku przykładom użycia tablic dynamicznych w Pythonie.

1. Implementacja dynamicznej listy zadań:


tasks = []

# Dodawanie zadań
tasks.append("Task 1")
tasks.append("Task 2")
tasks.append("Task 3")

# Wykonanie zadania i usunięcie go z listy
completed_task = tasks.pop(0)
print(f"Completed: {completed_task}")
print(f"Remaining tasks: {tasks}")  # Wyjście: Remaining tasks: ['Task 2', 'Task 3']

2. Implementacja dynamicznej listy obiektów:


students = []

# Dodawanie studentów
students.append("Alice")
students.append("Bob")
students.append("Charlie")

# Usunięcie studenta
students.remove("Bob")
print(f"Students after removal: {students}")  # Wyjście: Students after removal: ['Alice', 'Charlie']

# Dodawanie studenta na określoną pozycję
students.insert(1, "David")
print(f"Students after insertion: {students}")  # Wyjście: Students after insertion: ['Alice', 'David', 'Charlie']
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION