User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:adatszerkezetek_i._listak_tuple_stringek

Adatszerkezetek I. - Listák, tuple, stringek

Listák alapjai

Lista: több érték egy változóban.

  • Az elemeket szögletes zárójelbe kell tenni
  • Vesszővel kell elválasztani
  • Lista hossza: len(lista)

szamok = [1, 2, 3, 4] nevek = [“Anna”, “Béla”, “Csilla”] vegyes = [10, “szöveg”, True]

#példa
szamok = [10, 20, 30]
print(len(szamok))
print(szamok)

Feladat: Hozz létre egy listát 5 kedvenc számmal. Írd ki a lista hosszát. Írd ki az egész listát.

kedvencek = [3, 7, 12, 25, 42]

print("Hossz:", len(kedvencek))
print("Lista:", kedvencek)

Lista metódusai

  • append(x) – hozzáadás
  • extend(iterable) - Egy iterálható objektum összes elemét hozzáadja a lista végéhez.
  • insert(index, x) - Egy elemet beszúr a megadott indexre.
  • remove(x) - Eltávolítja az első előfordulását az adott értéknek.
  • pop([index]) - Eltávolít és visszaad egy elemet. (Ha nincs index az utolsót, ha van, akkor az aditt pozíciót
  • clear() - Az összes elemet törli a listából.
  • index(x[, start[, end]]) - Visszaadja az első előfordulás indexét.
  • count(x) - Megszámolja, hányszor szerepel az elem.
  • sort(key=None, reverse=False) - Rendezi a listát (helyben módosít).
  • sorted(x) - Rendezi alistát (új listát ad vissza)
  • reverse() - Megfordítja a lista elemeinek sorrendjét.
  • len(lst) - hossz
  • lst[0] - indexelés
  • lst[1:3] - szeletelés
  • 1 in lst - tagságvizsgálat

# Kiinduló lista
lst = [5, 2, 9, 2, 1]
print("Kezdeti lista:", lst)

# append()
lst.append(7)
print("append(7):", lst)

# extend()
lst.extend([8, 9])
print("extend([8,9]):", lst)

# insert()
lst.insert(1, 100)
print("insert(1,100):", lst)

# remove()
lst.remove(2)   # az első 2-t törli
print("remove(2):", lst)

# pop()
utolso = lst.pop()
print("pop():", lst, "| kivett elem:", utolso)

# index()
idx = lst.index(9)
print("index(9):", idx)

# count()
darab = lst.count(2)
print("count(2):", darab)

# sort()
lst.sort()
print("sort():", lst)

# reverse()
lst.reverse()
print("reverse():", lst)

# len()
print("len():", len(lst))

# indexelés
print("lst[0]:", lst[0])

# szeletelés
print("lst[1:4]:", lst[1:4])

# tagságvizsgálat
print("100 in lst:", 100 in lst)

# sorted() (nem módosítja az eredetit)
uj_lista = sorted(lst)
print("sorted(lst):", uj_lista)
print("Eredeti lista:", lst)

# clear()
lst.clear()
print("clear():", lst)

Feladat: Egy osztály dolgozatpontszámait kezeljük egy listában. Új pontszám érkezik, hibás adatot törlünk, javítást rögzítünk, statisztikát készítünk, majd rendezzük az adatokat.

# Kezdeti pontszámok
pontok = [78, 85, 62, 90, 78, 55]
print("Kezdeti lista:", pontok)

# Új tanuló pontszáma érkezik
pontok.append(88)
print("append(88):", pontok)

# Több pótdolgozat eredménye egyszerre
pontok.extend([91, 67])
print("extend([91, 67]):", pontok)

# Hibás adat bekerült (0 pont), ezt töröljük
pontok.append(0)
print("Hibás adat hozzáadva:", pontok)

pontok.remove(0)
print("remove(0):", pontok)

# Egy tanuló visszalép, az utolsó eredményt töröljük
torolt = pontok.pop()
print("pop():", pontok, "| törölt:", torolt)

# Megnézzük, hány 78 pontos dolgozat van
print("count(78):", pontok.count(78))

# Megkeressük a legelső 90 pontos dolgozat indexét
print("index(90):", pontok.index(90))

# Rendezzük növekvő sorrendbe
pontok.sort()
print("sort():", pontok)

# Fordított sorrend (legjobb eredmény elöl)
pontok.reverse()
print("reverse():", pontok)

# Átlag számítása
atlag = sum(pontok) / len(pontok)
print("Átlag:", round(atlag, 2))

# Ellenőrzés: van-e bukás (<60 pont)
bukott = any(p < 60 for p in pontok)
print("Van bukott tanuló?", bukott)

Lista bejárása for ciklussal

  • Nem indexet, hanem közvetlenül elemet kapunk

szamok = [10, 20, 30]

for elem in szamok:
    print(elem)

Feladat: Hozz létre egy listát 5 számmal. Írd ki az elemek összegét.

szamok = [4, 8, 15, 16, 23]

osszeg = 0
for elem in szamok:
    osszeg += elem

print("Összeg:", osszeg)


Indexelés

  • Az indexelés 0-tól indul.
  • Elem elérése: lista[index]
  • Utolsó elem: -1. index

szamok = [10, 20, 30]
print(szamok[0])
print(szamok[1])
print(szamok[-1]) #vagy print(szamok[2])

Feladat: Hozz létre egy 4 elemű listát, írd ki az első és az utolsó elemet, írd ki a második elemet megszorozva 2-vel

lista = [5, 10, 15, 20]

print("Első:", lista[0])
print("Utolsó:", lista[-1])
print("Második * 2:", lista[1] * 2)


String mint lista

A string karakterek sorozata.

szo = "Krumpli"
print(szo[0])

Bejárás:

for betu in szo:
    print(betu)

Feladat: Kérj be egy szót. Írd ki a karakterek számát. Írd ki külön sorba a karaktereket.

szo = input("Adj meg egy szót: ")

print("Karakterek száma:", len(szo))

for betu in szo:
    print(betu)


Összefoglaló feladatok

1. feladat: Írj egy programot, ami: Bekér 5 számot, eltárolja listában, kiírja a legnagyobb számot

szamok = []

for i in range(5):
    szam = float(input("Adj meg egy számot: "))
    szamok.append(szam)

max_ertek = szamok[0]

for elem in szamok:
    if elem > max_ertek:
        max_ertek = elem

print("Legnagyobb szám:", max_ertek)

2. feladat: Adott egy lista szavakkal. Számold meg minden szóban a magánhangzók számát, és készíts egy új listát, amely az eredeti szó mellé eltárolja a darabszámot!

szavak = ["alma", "korte", "szilva", "barack"]
maganhangzok = "aáeéiíoóöőuúüű"

eredmeny = []

for szo in szavak:
    db = 0
    for betu in szo:          # string bejárása
        if betu in maganhangzok:
            db += 1
    eredmeny.append((szo, db))   # tuple mentése listába

print(eredmeny)

3. feladat: Adott egy lista szavakkal. Készíts új listát, amely minden szót fordítva tartalmaz!

szavak = ["python", "lista", "ciklus"]
forditott = []

for szo in szavak:
    uj_szo = ""
    for i in range(len(szo)-1, -1, -1):   # visszafelé indexelés
        uj_szo += szo[i]
    forditott.append(uj_szo)

print(forditott)

4. feladat: Adott egy lista szavakkal.

  • Töröld az üres stringeket (“”)
  • Alakíts minden szót kisbetűssé
  • Számold meg, hányszor szerepel a “python” szó
  • Rendezd a listát ABC sorrendbe

szavak = ["Python", "", "lista", "PYTHON", "ciklus", "", "python"]

# Üres elemek törlése
while "" in szavak:
    szavak.remove("")

# Kisbetűsítés új listába
tisztitott = []
for szo in szavak:
    tisztitott.append(szo.lower())

# "python" előfordulások száma
db = tisztitott.count("python")
print("python előfordulás:", db)

# Rendezés
tisztitott.sort()
print("Rendezett lista:", tisztitott)

5. feladat: Adott egy jegylista.

  • Adj hozzá 2 új jegyet
  • Töröld az első elégtelent (1)
  • Írd ki, hány db 5-ös van
  • Rendezd csökkenő sorrendbe

jegyek = [3, 5, 2, 1, 4, 5, 1]

# Új jegyek hozzáadása
jegyek.extend([5, 4])

# Első 1-es törlése
if 1 in jegyek:
    jegyek.remove(1)

# 5-ösök száma
print("5-ösök száma:", jegyek.count(5))

# Rendezés csökkenőbe
jegyek.sort(reverse=True)
print("Rendezett lista:", jegyek)

6. feladat: Adott egy mondat.

  • Bontsd szavakra
  • Töröld az 1 karakteres szavakat
  • Add hozzá a “vége” szót a listához
  • Írd ki a leghosszabb szó indexét

mondat = "A python egy nagyon jo programozasi nyelv"

szavak = mondat.split()

# 1 karakteres szavak törlése
for szo in szavak[:]:   # másolat, hogy biztonságos legyen a törlés
    if len(szo) == 1:
        szavak.remove(szo)

# Új szó hozzáadása
szavak.append("vege")

# Leghosszabb szó meghatározása
leghosszabb = ""
for szo in szavak:
    if len(szo) > len(leghosszabb):
        leghosszabb = szo

print("Leghosszabb szó:", leghosszabb)
print("Indexe:", szavak.index(leghosszabb))

tanszek/oktatas/muszaki_informatika/adatszerkezetek_i._listak_tuple_stringek.txt · Last modified: 2026/02/19 19:32 by szabom