A programjainkban az adatokat változókban tároljuk. Eddig megismerkedtünk 4 alapvető adattípust.
Ezek közül egyik sem jó akkor, amikor több, egymáshoz tartozó adatot szeretnénk tárolni, kiírni vagy valamilyen műveletet végezni velük. Megoldást az összetett adattípus használata nyújt nekünk. Ilyen a python lista adattípusa.
A lista egy olyan adattípus, amely több értéket tud tárolni egymás után. Gondolj rá, mint egy bevásárlólistára, ahol több tételt írhatunk fel egymás alá. A Python listái nagyon rugalmasak: ugyanabban a listában tárolhatunk számokat, szövegeket, vagy akár más listákat is.
A listákat szögletes zárójelekkel [ ] hozzuk létre, és az elemeket vesszővel választjuk el egymástól:
# Üres lista
üres_lista = []
# Számokat tartalmazó lista
számok = [1, 2, 3, 4, 5]
# Szövegeket tartalmazó lista
gyümölcsök = ["alma", "körte", "banán"]
# Vegyes típusú lista
vegyes = [1, "hello", 3.14, True]
# Lista listában (beágyazott lista)
mátrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# Számok 0-tól 9-ig
számok = list(range(10))
print(számok) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Számok 5-től 15-ig
számok = list(range(5, 15))
print(számok) # [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
# Minden második szám 0-tól 20-ig
páros = list(range(0, 20, 2))
print(páros) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Az indexelés azt jelenti, hogy egy adott pozícióban lévő elemet akarunk elérni. Fontos: a Python 0-tól kezdi a számozást, nem 1-től!
gyümölcsök = ["alma", "körte", "banán", "szőlő"]
# Index: 0 1 2 3
gyümölcsök = ["alma", "körte", "banán", "szőlő"]
# Az első elem (index 0)
print(gyümölcsök[0]) # alma
# A második elem (index 1)
print(gyümölcsök[1]) # körte
# A negyedik elem (index 3)
print(gyümölcsök[3]) # szőlő
gyümölcsök = ["alma", "körte", "banán", "szőlő"]
# Az utolsó elem
print(gyümölcsök[-1]) # szőlő
# Az utolsó előtti elem
print(gyümölcsök[-2]) # banán
# Az első elem (ugyanaz, mint [0])
print(gyümölcsök[-4]) # alma
A szeletelés azt jelenti, hogy a lista egy részét kiemeljük.
lista[start:stop:step]
számok = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Minden második elem
print(számok[::2]) # [0, 2, 4, 6, 8]
# Minden harmadik elem
print(számok[::3]) # [0, 3, 6, 9]
# Negatív lépésköz (fordított sorrend)
print(számok[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# Meghatározott tartomány lépésközzel
print(számok[2:8:2]) # [2, 4, 6]
# Fordított sorrend meghatározott tartomány
print(számok[8:2:-2]) # [8, 6, 4]
szöveg = "Python"
print(szöveg[::2]) # Ptn
print(szöveg[::-1]) # nohtyP
nevek = ["Anna", "Béla", "Csaba", "Dóra", "Endre", "Fanni"]
# Minden második név
print(nevek[::2]) # ['Anna', 'Csaba', 'Endre']
# Az utolsó három név fordított sorrendben
print(nevek[-3:][::-1]) # ['Fanni', 'Dóra', 'Csaba']
# Az 1. indextől az 5. indexig, 2-es lépésközzel
print(nevek[1:5:2]) # ['Béla', 'Dóra']
A lépésköz negatív értéke fordított irányban halad a listán, ami lehetővé teszi az elemek megfordítását vagy visszafelé való iterálást.
gyümölcsök = ["alma", "körte", "banán"]
# A lista hossza (hány elem van benne)
print(len(gyümölcsök)) # 3
# Van-e egy elem a listában?
print("alma" in gyümölcsök) # True
print("citrom" in gyümölcsök) # False
# Hányadik pozícióban van egy elem?
print(gyümölcsök.index("körte")) # 1
gyümölcsök = ["alma", "körte"]
# Egy elem hozzáadása a végéhez
gyümölcsök.append("banán")
print(gyümölcsök) # ['alma', 'körte', 'banán']
# Elem beszúrása egy adott pozícióba
gyümölcsök.insert(1, "narancs")
print(gyümölcsök) # ['alma', 'narancs', 'körte', 'banán']
# Több elem hozzáadása
gyümölcsök.extend(["eper", "szőlő"])
print(gyümölcsök) # ['alma', 'narancs', 'körte', 'banán', 'eper', 'szőlő']
gyümölcsök = ["alma", "körte", "banán"]
# Az első elem megváltoztatása
gyümölcsök[0] = "narancs"
print(gyümölcsök) # ['narancs', 'körte', 'banán']
# Az utolsó elem megváltoztatása
gyümölcsök[-1] = "eper"
print(gyümölcsök) # ['narancs', 'körte', 'eper']
gyümölcsök = ["alma", "körte", "banán", "narancs"]
# Az utolsó elem eltávolítása
gyümölcsök.pop()
print(gyümölcsök) # ['alma', 'körte', 'banán']
# Egy adott pozícióban lévő elem eltávolítása
gyümölcsök.pop(1)
print(gyümölcsök) # ['alma', 'banán']
# Egy adott érték eltávolítása (az első előfordulás)
gyümölcsök = ["alma", "körte", "banán", "körte"]
gyümölcsök.remove("körte")
print(gyümölcsök) # ['alma', 'banán', 'körte']
# Az egész lista törlése
gyümölcsök.clear()
print(gyümölcsök) # []
számok = [3, 1, 4, 1, 5, 9, 2, 6]
# Rendezés (növekvő sorrend)
számok.sort()
print(számok) # [1, 1, 2, 3, 4, 5, 6, 9]
# Rendezés csökkenő sorrendben
számok = [3, 1, 4, 1, 5, 9, 2, 6]
számok.sort(reverse=True)
print(számok) # [9, 6, 5, 4, 3, 2, 1, 1]
# Lista fordítása
gyümölcsök = ["alma", "körte", "banán"]
gyümölcsök.reverse()
print(gyümölcsök) # ['banán', 'körte', 'alma']
Egy lista egyszerűen kiírható a Print(listanev) utasítással. Így kiírva azt látjuk, hogy nem szép. Erre nyújt megoldást a join() függvény. A join() a zárójelben átadott lista elemeit fűzi össze egyetlen karakterlánccá, az elemek közé pedig az elején, aposztrófok között megadott karakterláncot teszi.
szavak = ["Python", "nagyon", "hasznos"]
eredmeny = " ".join(szavak)
print(eredmeny) # Kimenet: Python nagyon hasznos
szamok = ["1", "2", "3", "4"]
eredmeny = ",".join(szamok)
print(eredmeny) # Kimenet: 1,2,3,4
datum = ["2026", "03", "25"]
eredmeny = "-".join(datum)
print(eredmeny) # Kimenet: 2026-03-25
betuk = ["P", "y", "t", "h", "o", "n"]
eredmeny = "".join(betuk)
print(eredmeny) # Kimenet: Python
⚠️ A join() csak karakterláncokat tud összefűzni.
[10, 20, 30, 40, 50]. Írd ki a harmadik elemet, majd módosítsd az első elemet 15-re.["zebra", "alma", "kutya", "banán"]. Rendezd betűrendbe és írd ki az eredményt.["piros", "kék", "zöld", "sárga", "fehér"]. Távolítsd el a "kék"-et a remove() metódussal és írd ki az eredményt.["autó", "bicikli", "vonat", "repülő"]. Keress meg az "vonat" indexét az index() metódussal és írd ki.["jan", "feb", "már", "ápr", "máj", "jún", "júl", "aug"]. Írd ki az első 3 hónapot és az utolsó 2 hónapot szeletelés segítségével.append() segítségével. Végül írd ki az új lista hosszát.[5, 15, 25, 35, 45]. Írd ki a második és negyedik elemet. Majd módosítsd a harmadik elemet 100-ra és írd ki a módosított listát.["Breaking Bad", "Game of Thrones", "The Office"]. Ellenőrizd, hogy a "The Office" benne van-e. Ha igen, írd ki: "A The Office a listában van!", ha nem, írd ki: "A The Office nincs a listában".["Magyarország", "Németország", "Ausztria", "Szlovákia"]. Rendezd betűrendbe és írd ki az eredményt.[10, 20, 30, 40, 50]. Fordítsd meg a listát és írd ki.["fekete", "fehér", "szürke", "barna", "krém"]. Távolítsd el a "szürke"-t a remove() metódussal és írd ki az eredményt.["oroszlán", "tigris", "elefánt", "zsiráf", "zebra"]. Keress meg az "elefánt" indexét az index() metódussal és írd ki.[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. Írd ki az első 4 elemet, az utolsó 3 elemet, és a középső 4 elemet (index 3-tól 6-ig) szeletelés segítségével.gyümölcsök = ["alma", "körte", "banán"]
# Egyszerű iterálás
for gyümölcs in gyümölcsök:
print(gyümölcs)
# Kimenet:
# alma
# körte
# banán
# Az indexszel együtt
for i, gyümölcs in enumerate(gyümölcsök):
print(f"{i}. {gyümölcs}")
# Kimenet:
# 0. alma
# 1. körte
# 2. banán