adatszerkezet – Wikiszótár
A Wikiszótárból, a nyitott szótárból
Magyar
Kiejtés
- IPA: [ ˈɒdɒt͡sːɛrkɛzɛt]
Főnév
adatszerkezet
Adatszerkezetek Pythonban
Python számos beépített adatszerkezetet kínál, amelyek segítségével hatékonyan tárolhatunk és kezelhetünk adatokat. Az alábbiakban bemutatjuk a leggyakoribb adatszerkezeteket Pythonban, valamint azok használatát példákkal.
1. Lista
A lista egy rendezett, módosítható, és indexelhető gyűjtemény, amely tetszőleges típusú adatokat tárolhat.
Példa:
# Lista létrehozása my_list = [1, 2, 3, 4, 5] # Hozzáadás my_list.append(6) # Törlés my_list.remove(3) # Lista kiírása print(my_list) # [1, 2, 4, 5, 6]
- Előnyök:
- A lista bármilyen típusú adatot tárolhat (számokat, karaktereket, más listákat stb.).
- Az elemek elérhetők indexeléssel.
- Hátrányok:
- A lista közepén való módosítások (pl. beszúrás) lassúak lehetnek.
2. Tuple (Névtelen Adatszerkezet)
A tuple egy rendezett, de nem módosítható adatszerkezet, amely gyorsabb a listánál.
Példa:
# Tuple létrehozása my_tuple = (1, 2, 3, 4, 5) # Tuple kiírása print(my_tuple) # (1, 2, 3, 4, 5) # A tuple elemei nem módosíthatók # my_tuple[0] = 10 # Hiba! 'tuple' object does not support item assignment
- Előnyök:
- Gyorsabb, mint a lista, ha nem kell módosítani.
- Mivel nem módosítható, biztonságosabb, ha csak olvasni szeretnénk az adatokat.
- Hátrányok:
- Nem módosíthatók, ezért nem alkalmasak olyan helyzetekre, ahol szükség van módosításra.
3. Szótár (Dictionary)
A szótár egy kulcs-érték párban tárolt adatszerkezet. Az elemek gyorsan elérhetők kulcs alapján.
Példa:
# Szótár létrehozása my_dict = {'apple': 1, 'banana': 2, 'cherry': 3} # Érték hozzáadása my_dict['orange'] = 4 # Érték kiolvasása kulcs alapján print(my_dict['apple']) # 1 # Kulcs törlése del my_dict['banana'] # Szótár kiírása print(my_dict) # {'apple': 1, 'cherry': 3, 'orange': 4}
- Előnyök:
- Az adatok gyorsan elérhetők kulcs alapján.
- Dinamikusan bővíthető.
- Hátrányok:
- A kulcsoknak egyedinek kell lenniük.
4. Halmaz (Set)
A halmaz egy nem rendezett, egyedi elemeket tartalmazó adatszerkezet. A halmazok hasznosak az ismétlődő elemek eltávolítására.
Példa:
# Halmaz létrehozása my_set = {1, 2, 3, 4, 5} # Hozzáadás my_set.add(6) # Ismétlődő elem nem kerül hozzáadásra my_set.add(3) # Halmaz kiírása print(my_set) # {1, 2, 3, 4, 5, 6} # Törlés my_set.remove(4) # Halmaz kiírása print(my_set) # {1, 2, 3, 5, 6}
- Előnyök:
- Az elemek egyediek.
- Gyors műveletek (például keresés, hozzáadás, törlés).
- Hátrányok:
- Nem támogatja az indexelést, mivel a halmazok nem rendezettek.
5. Queue (Sor)
A queue (sor) egy FIFO (First In, First Out) típusú adatszerkezet, amelyben az elemek a sorrendjükben kerülnek feldolgozásra.
Példa:
from collections import deque # Sor létrehozása queue = deque() # Elemeink hozzáadása queue.append(1) queue.append(2) queue.append(3) # Elem eltávolítása print(queue.popleft()) # 1 # Sor kiírása print(queue) # deque([2, 3])
- Előnyök:
- A sor műveletek gyorsak.
- Lehetővé teszi az elemeket rendezett módon kezelni.
- Hátrányok:
- A sor egyszerű, de nem biztosít gyors hozzáférést az elemekhez.
6. Stack (Verem)
A stack (verem) egy LIFO (Last In, First Out) típusú adatszerkezet, ahol az utolsó elem kerül először feldolgozásra.
Példa:
# Verem létrehozása stack = [] # Elemeink hozzáadása stack.append(1) stack.append(2) stack.append(3) # Elem eltávolítása print(stack.pop()) # 3 # Verem kiírása print(stack) # [1, 2]
- Előnyök:
- Az utolsó elem hozzáféréséhez gyors és hatékony.
- Alkalmas például visszalépési mechanizmusokhoz.
- Hátrányok:
- Csak az utolsó elemhez férhetünk hozzá gyorsan, nem támogatja az indexelést.
7. Heap (Halom)
A heap egy speciális, rendezett bináris fa, amelyet gyakran használnak prioritásos sorok implementálására. A Python-ban a heapq
modul biztosítja a heap adatszerkezetet.
Példa:
import heapq # Halom létrehozása heap = [] # Elem hozzáadása heapq.heappush(heap, 3) heapq.heappush(heap, 1) heapq.heappush(heap, 2) # Legkisebb elem eltávolítása print(heapq.heappop(heap)) # 1 # Halom kiírása print(heap) # [2, 3]
- Előnyök:
- Lehetővé teszi a gyors hozzáférést a legkisebb vagy legnagyobb elemhez.
- Hatékony prioritásos sorok implementálására.
- Hátrányok:
- A heap struktúra nem alkalmas gyors indexelésre.
Összegzés
- Listák és tuplák egyszerű és rugalmas adatstruktúrák, amelyek tökéletesek általános tárolásra.
- Szótárak és halmazok hatékonyak az elemek gyors keresésére.
- Queue és Stack ideálisak olyan helyzetekben, ahol a műveletek sorrendje kritikus.
- Heap hasznos a prioritásos sorok és algoritmusok (pl. Dijkstra, A*) számára.
Mindezek a Python adatszerkezetei alapvetőek és hasznosak különböző típusú problémák megoldására.
Etimológia
Fordítások
- angol: data structure (en)
- szerbhorvát: podatkovna struktura (sh) nn
- német: Datenstruktur (de) nn
- orosz: структура данных (ru) (struktura dannyx)
További információk
- adatszerkezet - Értelmező szótár (MEK)
- adatszerkezet - Etimológiai szótár (UMIL)
- adatszerkezet - Szótár.net (hu-hu)
- adatszerkezet - DeepL (hu-de)
- adatszerkezet - Яндекс (hu-ru)
- adatszerkezet - Google (hu-en)
- adatszerkezet - Helyesírási szótár (MTA)
- adatszerkezet - Wikidata
- adatszerkezet - Wikipédia (magyar)