Szerkesztés alatt!
Az oldal további része szerkesztés alatt áll, a tartalma minden további értesítés nélkül többször, gyakran, jelentősen megváltozhat!
Listák¶
Tartalom
A Python list és tuple adattípusa, és listafeldolgozó függvények. Feladatmegoldások list és listabejárás segítségével.
Összetett adattípusok¶
Eddigi tanulmányaink során adatok tárolására nagyrészt olyan adattípusokat használtunk, amik egyszerre csak egy érték tárolására voltak alkalmasak (például: int,float stb.) egy változón belül.
(A sztringek kicsit kilógnak ebből a sorból, hiszen egy sztring az több karakterből áll, ennek ellenére egy sztringet egy értéknek tekinteni nem tűnik teljesen agyament ötletnek.)
Összetettebb adattípusok használatával el tudjuk érni, hogy egy változón belül több értéket is tudjuk tárolni.
Listák¶
A Python list adattípusával értékek sorozatát tudjuk tárolni.
Egyelőre sztringek listáival foglalkozunk, később majd látjuk, hogy igazából egy lista bármilyen értékeket tartalmazhat.
Lista létrehozása¶
A listákat szögletes zárójelekkel ([ és ]) hozzuk létre, és az elemeket vesszővel választjuk el egymástól.
A szögletes zárójel párt használjuk majd a későbbiekben a listák inexelésére (hasonlóan a sztringekhez).
Szövegeket tartalmazó lista létrehozása
1 2 3 4 5 6 7 | |
Üres lista ([]) létrehozására használható a list() függvény is.
Üres lista létrehozása
1 2 | |
A list() függvény
Listákat alapvetően szögletes zárójelek használatával adhatunk meg, de érdemes tudni, hogy van egy beépített list() függvény is, amelynek segítségével listákat hozhatunk létre.
A list() függvény tulajdonképpen egy konstruktor, amelynek a feladata egy list típusú érték létrehozása.
Ha nem adunk neki argumentumot, akkor egy üres listát hoz létre.
Kaphat viszont argumentumként egy másik listát (de akár például halmazt, intervallumot is), amely esetben egy olyan új listát hoz létre, amely az argumentum értékeit tartalmazza.
Lista elemeinek elérése, módosítása¶
A lista elemeit indexelés segítségével érhetjük el.
Pythonban indexelésre a [] (subscript) operátort használhatjuk, és az indexelés 0-tól kezdődik, tehát a lista első eleme a 0. indexen van.
Az indexek segítségével módosíthatjuk is a lista tartalmát.
Lista indexelése
1 2 3 4 5 6 7 8 9 10 11 12 | |
Az indexelés során negatív indexeket is megadhatunk, ezeket a Python úgy kezeli, mintha a lista végéről indulnánk. A -1 index például a lista utolsó elemét jelöli, a -2 az utolsó előttit, stb.
Negatív indexek
1 2 3 4 5 6 7 8 9 10 11 12 | |
Nem létező indexek
Ha a [] operátornak érvénytelen indexet adunk (pl. a lista hosszánál nagyobbat), akkor a művelet hibát fog dobni.
Az in és not in operátor használható annak ellenőrzésére, hogy egy érték szerepel-e a listában.
Az in és not in használata
1 2 3 4 5 | |
Lista bejárása¶
A listák feldolgozásánál elég gyakran van szükség arra, hogy a lista elemeit (sorban) bejárjuk (és az éppen aktuálisan vizsgált listaelemmel valamilyen műveletet végezzünk).
Ezt egy for ciklus segítségével könnyen meg tudjuk tenni:
Lista bejárása for in lista szerkezettel¶
A for a listaelemeket mindig a lista elejétől a végéig, sorrendben járja be.
Lista elemeinek egyszerű bejárása for-in segítségével
1 2 3 4 | |
1 2 3 4 5 6 7 | |
Metódusok listákon¶
A lista hossza - len()¶
A len() visszaadja a lista elemeinek számát.
A lista hossza
1 2 | |
Elem keresése - index()¶
Az index metódus használható annak ellenőrzésére, hogy egy érték szerepel-e a listában.
Az index használata
1 2 3 4 | |
Elem hozzáadása - .append()¶
Az .append() metódussal egy új elemet adhatunk hozzá a lista végére.
Az .append() metódus használata
1 2 3 | |
A .pop() metódussal eltávolíthatjuk a lista egy adott indexű vagy utolsó elemét.
A .pop() metódus használata
1 2 3 4 5 6 7 | |
Feladatok¶
1. feladat
Hozz létre egy listát gyumolcsok néven, amely a következő szövegeket tartalmazza: ['sarkanygyumolcs', 'szolo', 'szilva', 'granatalma', 'mango', 'lichi'].
Majd:
- Írd ki a lista hosszát!
- Írd ki a lista legelső elemét és harmadik elemét!
2. feladat
Hozz létre egy nevek nevű listát, amely a következő számokat tartalmazza: ['Bela', 'Julcsi', 'Mark'].
Majd:
- Adj hozzá egy új nevet a lista végére.
- Írd ki a lista tartalmát elemenként, hogy minden elem új sorban legyen.
3. feladat
Olvass be egy listába sorokat a standard inputról. Az input végét az üres sor jelzi (ez már nem lesz része a listának).
- Először írasd ki azokat a sorokat, amelyben egyetlen szó van (nincs szóköz).
- Utána írd ki azokat a sorokat, amelyben több szó van (van szóköz).