Python
Listák létrehozása
Ha Pythonban programozol, nagyon gyorsan eljön az a pont, amikor már nem elég egyetlen adatot eltárolni. Oké, egy név, egy szám vagy egy életkor még simán mehet egy változóba. De mi van akkor, ha több hónapot, több nevet vagy több eredményt szeretnél együtt kezelni?
Na itt lépnek színre a listák.
A lista Pythonban egy olyan adattípus, amiben több elemet tudsz eltárolni egyetlen név alatt. Ez azért hasznos, mert nem kell külön változót létrehoznod minden egyes adathoz. Elég egy lista, és máris átláthatóbban tudsz dolgozni.
Ebben a bejegyzésben megnézzük, hogyan működik a listák létrehozása Pythonban, hogyan kell őket helyesen megadni, és hogyan tudod kiíratni a tartalmukat.
Python listák létrehozása
Amikor programot írunk, gyakran szeretnénk adatokat tárolni. Ezek lehetnek például hónapok, tantárgyak, pontszámok vagy akár bevásárlólista-elemek. Egy-egy adatot könnyen el tudunk menteni változókba, de ha sok összetartozó adatunk van, akkor sokkal jobb megoldás a lista.
A lista abban segít, hogy több elemet egyetlen változóban tudjunk tárolni.
Miért jó a lista?
Képzeld el, hogy el akarod tárolni az év hónapjait. Megtehetnéd így is:
- honap1 = „január”
- honap2 = „február”
- honap3 = „március”
Ez működik, csak hosszú és nehezen kezelhető. Elég hamar káosz lesz belőle. A Python erre ad egy sokkal tisztább megoldást: a listát.
Lista létrehozása Pythonban
A lista létrehozásához megadjuk a lista nevét, írunk egy egyenlőségjelet, majd szögletes zárójelek közé felsoroljuk a lista elemeit.
honapok = [„január”, „február”, „március”, „április”, „május”, „június”, „július”, „augusztus”, „szeptember”, „október”, „november”, „december”]
Ebben a példában:
- a lista neve:
honapok - az egyenlőségjel után adjuk meg a lista értékét
- a lista elemei
[]közé kerülnek - az elemeket vesszővel választjuk el egymástól
- mivel itt szövegeket tárolunk, ezért idézőjelbe kell írni őket
Ez nagyon fontos: ha a lista elemei szövegek, akkor idézőjel kell. Ha számok, akkor nem.
Egy számlista így nézne ki:
szamok = [3, 7, 12, 25, 40]
A lista elemei lehetnek különböző típusúak is:
adatok = [„Anna”, 16, True]
Ez technikailag teljesen jó, de kezdőként érdemes azonos típusú adatokat egy listában tárolni, mert úgy átláthatóbb marad a program.
Üres lista létrehozása: olyan is van, hogy előre létrehozol egy listát, de még nincs benne semmi:
nevek = []
Ez egy üres lista. Később lehet elemeket hozzáadni.
Lista tartalmának kiiratása
Ha szeretnéd megnézni mi van a listában, akkor egyszerűen kiirathatod print() segítségével:
print(honapok)
A program ilyenkor kiírja a teljes lista tartalmát. A kimenet valami ilyesmi lesz:
[‘január’, ‘február’, ‘március’, ‘április’, ‘május’, ‘június’, ‘július’, ‘augusztus’, ‘szeptember’, ‘október’, ‘november’, ‘december’]
A Python úgy mutatja meg a lista elemeit, ahogy eltárolta.
A lista szebb kiiratása
Ha kulturáltabban szeretnéd megjeleníteni a lista elemeit, használhatod a join() metódust:
print(„, „.join(honapok))
print(” | „.join(honapok))
A join összefűzi a lista elemeit egyetlen szöveggé, és közéjük beszúrja azt az elválasztót, amit megadtál. Például a „, „.join(honapok) – vesszővel választja el a hónapok neveit: január, február, március.
A ” | „.join(honapok) függőleges vonallal választja el őket: január | feburár | március
A join() csak akkor működik jól, ha a lista elemei szövegek.
A lista hosszának lekérdezése len() függvénnyel
Ha szeretnéd tudni, hány elem van a listában, használd a len() függvényt:
print(len(honapok))
ez megadja a lista elemeinek számát. Ha a hónapok lista 12 hónapot tartalmaz, akkor a kimenet: 12. A len függvény gyakran előkerül Pythonban, érdemes megjegyezni-
Adott listaelem kiíratása
Ha nem az egész listára vagyunk kiváncsiak, hanem csak egyetlen elemre, akkor index alapján tudsz hivatkozni rá.
print(honapok[0])
Ez a lista első elemét írja ki. : január.
A lista indexelése nulláról indul. Ez elsőre kicsit fura lehet, de programozásban teljesen alap.
Több listaelem elérése szeleteléssel
Nemcsak egyetlen elemet kérhetsz le, hanem a lista egy részét is. Ezt szeletelésnek hívjuk.
print(honapok[0:2] – ez a 0 és az 1. indexű elemeket írja ki, vagyis: január február.
Szeletelésnél a kezdő index még benne van, a záró index már nincs. Azt jelenti: induljon a 0. indextől és álljon meg a 2. index előtt.
Kiíratás egy adott helytől a lista végéig
Ha egy bizonyos elemtől kezdve az összes többit szeretnéd látni, akkor a második indexet el is hagyhatod:
print(honapok[2:])
Ez a 2. indexű elemtől kezdi a kiírást, tehát: március, április, május …
Negatív indexelés
A Pythonban lehet visszafelé is számolni:
print(honapok[-2]
Ez a lista végétől számított elemet adja vissza, azaz november lesz. Nem azt jelenti, hogy visszafelé végigmegy a listán, hanem a végétől számolod az indexeket:
honapok[-1] – december
honapok[-2] november
honapok[-3] – október …
Ugyanez működik szövegeknél is
A szeletelés nemcsak listáknál működik, hanem stringeknél is, mert a szöveg is egy karakterből álló sorozat.
szo = „Python”
print(szo[:4] -> kimenet: Pyth. Itt az első 4 karaktert fogja kiírni, ugyanazon a logika mentén, mint a listáknál.
Szavak bekérése és listán tárolása
Most nézzünk egy nagyon hasznos példát: azt szeretnénk, hogy a felhasználó több szót adjon meg, és ezeket egy listában tároljuk.
Üres lista létrehozása
Először létrehozunk egy üres listát:
szavak = []
Ide kerülnek majd a felhasználó által megadott szavak. Egy változó kezdőérték nélkül Ezután létrehozunk egy változót:
szo = None
A None azt jelenti, hogy a változónak egyelőre nincs valódi értéke. Ez egy gyakori megoldás Pythonban, ha később akarunk majd értéket adni neki.
Szavak bekérése ciklusban
A cél az, hogy addig kérünk be szavakat, amíg a felhasználó nem nyom csak egy Entert.
Hogyan működik ez?
- létrehozunk egy üres listát
- bekérünk egy szót a felhasználótól
- ha a beírt szöveg nem üres, hozzáadjuk a listához az
append()segítségével - ha a felhasználó üresen hagyja a sort és csak Entert nyom, a ciklus leáll
Az append() egy listaelem-hozzáadó művelet: szavak.append(szo) -> a szo változó aktuális értékét hozzáfűzik a lista végéhez.
Gyakorlás
1. Hónapok listája
Hozz létre egy honapok nevű listát, amely az év első 6 hónapját tartalmazza.
Feladatok:
- írasd ki az egész listát
- írasd ki a lista hosszát
- írasd ki az első elemet
- írasd ki a harmadik elemet
- írasd ki az utolsó elemet
Megoldás
print(honapok[-1]
2. Szebb kiíratás
A honapok listát írasd ki többféleképpen:
- vesszővel elválasztva
|jellel elválasztva-jellel elválasztva
Megoldás
3. Szeletelés gyakorlása
Egy napok listában tárold a hét napjait.
Feladatok:
- írasd ki az első 3 napot
- írasd ki a 2. elemtől a végéig
- írasd ki az utolsó 2 elemet
- írasd ki a lista középső részét szeleteléssel
Megoldás
4. Kedvenc kaják
Készíts egy kajak nevű listát legalább 5 étellel.
Feladatok:
- írasd ki az egész listát
- írasd ki a második kedvencedet
- írasd ki az első 3 ételt
- írasd ki a lista utolsó elemét negatív indexeléssel
- írasd ki a lista hosszát
Megoldás
5. String és lista közti hasonlóság
Hozz létre egy változót:
szo = „programozas”
- írasd ki az első 4 karaktert
- írasd ki az utolsó 3 karaktert
- írasd ki a 2. karaktertől az 5. karakterig
- figyeld meg, hogy ez mennyire hasonlít a listák szeletelésére
Megoldás
6. Szóbekérős lista
Készíts programot, amely szavakat kér be a felhasználótól, és eltárolja őket egy listában.
Szabály:
- addig kérjen be új szót, amíg a felhasználó nem nyom egy üres Entert
A végén:
- írasd ki a teljes listát
- írasd ki, hány szót adott meg a felhasználó
Megoldás
7. Bevásárlólista
Kérj be a felhasználótól bevásárlólista-elemeket, és tárold őket listában.
A végén:
- írasd ki a lista elemeit egy sorban vesszővel elválasztva
- írasd ki az első és az utolsó elemet
- írasd ki a lista hosszát
➡️ Extra: csak akkor add hozzá a listához az elemet, ha nem üres a megadott szöveg.
Megoldás
8. Osztálynévsor
Legyen egy lista 5 tanuló nevével.
Feladatok:
- írasd ki a teljes listát
- írasd ki a 3. tanuló nevét
- írasd ki az első 2 tanulót
- írasd ki az utolsó 3 tanulót
- írasd ki a neveket pontosvesszővel elválasztva
Megoldás
9. Top 3 kedvenc
Kérj be a felhasználótól 3 kedvenc filmet vagy zenét, és tárold el listában.
A végén:
- írasd ki a teljes listát
- írasd ki őket
|elválasztással - írasd ki az első kedvencet
- írasd ki az utolsó kedvencet
- írasd ki a lista hosszát
Megoldás
10. Csak rövid szavak
Kérj be szavakat a felhasználótól egy listába, üres Enterig.
A végén:
- írasd ki az összes szót
- írasd ki csak az első 3 szót
- írasd ki az utolsó 2 szót
- írasd ki, hány szó került a listába
Megoldás
11. Hónapokból részlista
Hozd létre az év 12 hónapját tartalmazó listát.
Feladatok:
- írasd ki az első félév hónapjait
- írasd ki a második félév hónapjait
- írasd ki az első 3 hónapot
- írasd ki az utolsó 3 hónapot
- írasd ki a hónapokat egy sorban, vesszővel elválasztva
Megoldás
12. Saját listaépítő program
Készíts programot, amely:
- létrehoz egy üres listát
- bekér adatokat a felhasználótól
- minden megadott adatot eltárol
- üres Enterre leáll
A program végén írja ki:
- a teljes listát
- a lista hosszát
- az első elemet, ha van ilyen
- az utolsó elemet, ha van ilyen
Megoldás
13. Vegyes listafigyelés
Hozz létre egy ilyen listát:
- egy szöveg
- egy szám
- egy logikai érték
Utána:
- írasd ki az egész listát
- írasd ki külön az első, második és harmadik elemet
➡️ Figyeld meg, hogy a Python ezt simán engedi, még ha nem is mindig ez a legszebb megoldás.
Megoldás
Ha a ciklusok működését a hivatalos leírás alapján is szeretnéd megnézni, olvasd el a Python vezérlési szerkezetekről szóló tutorialját.









