list
Mire használható a list?
A lista (angolul: „list”) egy olyan adattípus, amely egy sorozatot tartalmazó objektumot jelöl. Az egyes elemek a listában indexek segítségével érhetők el, amelyek az első elemetől kezdve sorban növekednek egészen az utolsó elemig. A lista tetszőleges típusú elemeket tartalmazhat, beleértve más listákat, szótárakat, számokat, karakterláncokat és logikai értékeket is.
Példa
A lista Pythonban a szögletes zárójelek között definiálható. Az elemek vesszővel vannak elválasztva, és bármely érvényes Python kifejezést tartalmazhatnak. Például:
my_list = [1, 2, 3, "four", True]
A fenti példában a my_list
nevű változó egy öt elemű listát tartalmaz, amely az egész számokat, karakterláncokat és egy logikai értéket tartalmazza.
A lista elemei elérhetők index segítségével, amelyek az első elemetől kezdődően egész számokkal vannak meghatározva. Például a my_list
első eleméhez a következőképpen férhetünk hozzá:
first_element = my_list[0]
A lista elemek módosíthatók, és új elemeket is hozzáadhatunk a listához az append()
metódus segítségével. Például:
my_list.append("new item")
Ez a kódrészlet hozzáad egy új elemet a listához, amelynek értéke „new item”.
A lista elemeket szintén eltávolíthatjuk a remove()
metódus vagy a del
kulcsszó használatával. Például:
my_list.remove("four")
del my_list[1]
Ezek a kódrészletek eltávolítják a listából a „four” elemet, majd a második elemet (a 2
-t).
Összetett - Példa
Például az alábbi lista tartalmazza az aktuális kosarat, amely egy webshopban található:
kosar = ["Áfonya", "Kókuszos csokoládé", "Kenyér", "Tej", "Alma"]
A listában különböző típusú elemek is lehetnek, például számok vagy akár más listák is:
adatok = ["John Doe", 35, "john.doe@example.com", [101, 102, 103]]
A listák elemei numerikus indexszel érhetők el, amelyek az elemek sorrendjétől függenek. Az indexek nullától kezdődnek, és a lista hosszának egyel kevesebb, mint a lista elemek száma:
kosar = ["Áfonya", "Kókuszos csokoládé", "Kenyér", "Tej", "Alma"]
print(kosar[0]) # kimenet: "Áfonya"
print(kosar[2]) # kimenet: "Kenyér"
print(kosar[-1]) # kimenet: "Alma"
print(len(kosar)) # kimenet: 5
A listákhoz számos beépített metódus is tartozik, amelyek segítségével könnyen manipulálhatjuk őket. Például, ha hozzá akarunk adni egy új elemet a listához, akkor a append()
metódust használhatjuk:
kosar = ["Áfonya", "Kókuszos csokoládé", "Kenyér", "Tej", "Alma"]
kosar.append("Sajt")
print(kosar) # kimenet: ["Áfonya", "Kókuszos csokoládé", "Kenyér", "Tej", "Alma", "Sajt"]
Ha pedig el akarjuk távolítani az utolsó elemet a listából, akkor a pop()
metódust használhatjuk:
kosar = ["Áfonya", "Kókuszos csokoládé", "Kenyér", "Tej", "Alma"]
kosar.pop()
print(kosar) # kimenet: ["Áfonya", "Kókuszos csokoládé", "Kenyér", "Tej"]
A listák többféle módosítási műveletet is támogatnak, mint például elemek hozzáadása vagy eltávolítása, valamint a lista elemeinek átrendezése vagy másolása. A listák alkalmazása különösen hasznos, amikor egy programnak számos hasonló típusú objektumokat kell kezelnie, mint például adatsorokat, képeket vagy szövegeket.
Komplex feladat
def ibetuk(szoveg):
db = 0
for b in szoveg:
if b == 'i':
db += 1
return db
honapok = ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december']
max = honapok[0]
for e in honapok:
if ibetuk(max) < ibetuk(e):
max = e
print(f'A legtöbb \'i\' betűt tartalmazó hónap: {max}.')
A legtöbb 'i' betűt tartalmazó hónap: április.
- Definiálunk egy függvényt,
ibetuk
, amely paraméterként kap egy szöveget (szoveg
). Ez a függvény számolja meg, hogy hány ‘i’ betű van a szövegben. Ehhez inicializáljuk adb
változót 0-val, majd végigmegyünk a szövegen karakterenként (for b in szoveg
). Ha a karakter ‘i’, növeljük adb
értékét eggyel. - Változóban (
honapok
) tároljuk az összes hónap nevét egy listában. - Inicializálunk egy
max
változót, amelyet az első hónappal (honapok[0]
) állítunk be kezdeti értékként. - Végigmegyünk minden hónapon (
for e in honapok
) és összehasonlítjuk az ‘i’ betűk számát a jelenlegi legtöbb ‘i’-t tartalmazó hónappal (ibetuk(max) < ibetuk(e)
). Ha az aktuális hónap több ‘i’-t tartalmaz, mint a jelenlegi legtöbb ‘i’-t tartalmazó hónap, akkor frissítjük amax
változót az aktuális hónapra. - Kiíratjuk a legtöbb ‘i’ betűt tartalmazó hónapot a képernyőre.
Buktató, figyelmezetés
- A kód feltételezi, hogy az ‘i’ betűket kisbetűként írják a hónapokban. Ha nagybetűvel vannak írva, az ‘i’ betűket nem fogja számolni.
- Az ‘i’ betűk számolásánál a kód nem különbözteti meg az ékezetes és ékezet nélküli ‘i’-ket. Tehát, ha a szövegben van ékezetes ‘í’ karakter, azt is számolja.
- Az ‘i’ betűk számolása case-sensitive módon történik, tehát kis- és nagybetű ‘i’-k külön-külön számolódnak.
- Az ‘i’ betűk számolása egyszerű karakterösszehasonlításon alapul. Ezt figyelembe kell venni, ha a szövegben más karakterek is lehetnek, és csak az ‘i’-ket szeretnénk számolni.
- Az ‘i’ betűk számolása során a kódban nincs figyelembe véve az ‘i’ betűk kontextusa, csak az ‘i’ karakterek előfordulásának száma számít.