A lista adattípus

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.

Mi az a lista?

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.

Lista Létrehozása

Alapvető létrehozás

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]]

Lista létrehozása a range() függvénnyel

# 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]

Lista Indexelése

Mi az indexelés?

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

Elemek elérése pozícióval

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ő

Negatív indexelés (a végről számolva)

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

Lista Szeletelése (Slicing)

A szeletelés azt jelenti, hogy a lista egy részét kiemeljük.

Alapvető szintaxis

lista[start:stop:step]

Gyakorlati példák

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 szeletelése

szöveg = "Python" print(szöveg[::2]) # Ptn print(szöveg[::-1]) # nohtyP

Összetettebb példa

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.

Lista hossza és ellenőrzések

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

Listák módosítása

Elemek hozzáadása

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ő']

Elemek módosítása

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']

Elemek eltávolítása

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) # []

Listák Rendezése és Fordítása

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']

Listák kiírása

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.

Gyakorló feladatok

1. feladatsor

  1. Hozz létre egy listát a kedvenc színeiddel
  2. Add hozzá egy új színt az append() használatával
  3. Írd ki az első és az utolsó elemet
  4. Módosítsd a második elemet
  5. Írd ki a lista hosszát
  6. Ellenőrizd, hogy egy adott szín benne van-e a listában
  7. Rendezd a listát betűrendben
  8. Fordítsd meg a listát

2. feladatsor

  1. Hozz létre egy listát 5 kedvenc gyümölcsoddel. Írd ki az összes gyümölcsöt, majd add hozzá a "mangó"-t az append() segítségével.
  2. Készíts egy listát a következő számokkal: [10, 20, 30, 40, 50]. Írd ki a harmadik elemet, majd módosítsd az első elemet 15-re.
  3. Hozz létre egy listát városnevekkel. Ellenőrizd, hogy a "Budapest" benne van-e. Ha igen, írd ki: "Budapest a listában van!", ha nem, írd ki: "Budapest nincs a listában".
  4. Készíts egy listát a kövtkező szavakkal: ["zebra", "alma", "kutya", "banán"]. Rendezd betűrendbe és írd ki az eredményt.
  5. Hozz létre egy listát számokkal 1-től 5-ig. Fordítsd meg a listát és írd ki.
  6. Készíts egy listát: ["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.
  7. Hozz létre egy listát: ["autó", "bicikli", "vonat", "repülő"]. Keress meg az "vonat" indexét az index() metódussal és írd ki.
  8. Készíts egy listát a hónapok rövidítéseivel: ["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.

3. feladatsor

  1. Hozz létre egy listát 4 kedvenc filmeddel. Írd ki az összes filmet, majd add hozzá az "Inception"-t az append() segítségével. Végül írd ki az új lista hosszát.
  2. Készíts egy listá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.
  3. Hozz létre egy listát kedvenc TV-sorozatokkal: ["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".
  4. Készíts egy listát: ["Magyarország", "Németország", "Ausztria", "Szlovákia"]. Rendezd betűrendbe és írd ki az eredményt.
  5. Hozz létre egy listát számokkal: [10, 20, 30, 40, 50]. Fordítsd meg a listát és írd ki.
  6. Készíts egy listát: ["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.
  7. Hozz létre egy listát: ["oroszlán", "tigris", "elefánt", "zsiráf", "zebra"]. Keress meg az "elefánt" indexét az index() metódussal és írd ki.
  8. Készíts egy listát számokkal 1-től 10-ig: [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.

Listák Iterálása (Végigmegyünk az elemeken)

for ciklus

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