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]

<sxh python> #példa szamok = [10, 20, 30] print(len(szamok)) print(szamok) </sxh>

Feladat: Hozz létre egy listát 5 kedvenc számmal. Írd ki a lista hosszát. Írd ki az egész listát. <sxh python> kedvencek = [3, 7, 12, 25, 42]

print(“Hossz:”, len(kedvencek)) print(“Lista:”, kedvencek) </sxh>

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

<sxh python> # 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)

</sxh>

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. <sxh python> # 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)

</sxh>

Lista bejárása for ciklussal

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

<sxh python> szamok = [10, 20, 30]

for elem in szamok:

  print(elem)

</sxh>

Feladat: Hozz létre egy listát 5 számmal. Írd ki az elemek összegét. <sxh python> szamok = [4, 8, 15, 16, 23]

osszeg = 0 for elem in szamok:

  osszeg += elem

print(“Összeg:”, osszeg) </sxh>


Indexelés

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

<sxh python> szamok = [10, 20, 30] print(szamok[0]) print(szamok[1]) print(szamok[-1]) #vagy print(szamok[2]) </sxh>

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 <sxh python> lista = [5, 10, 15, 20]

print(“Első:”, lista[0]) print(“Utolsó:”, lista[-1]) print(“Második * 2:”, lista[1] * 2) </sxh>


String mint lista

A string karakterek sorozata. <sxh python> szo = “Krumpli” print(szo[0]) </sxh>

Bejárás: <sxh python> for betu in szo:

  print(betu)

</sxh>

Feladat: Kérj be egy szót. Írd ki a karakterek számát. Írd ki külön sorba a karaktereket. <sxh python> szo = input(“Adj meg egy szót: ”)

print(“Karakterek száma:”, len(szo))

for betu in szo:

  print(betu)

</sxh>


Összefoglaló feladatok

1. feladat: Írj egy programot, ami: Bekér 5 számot, eltárolja listában, kiírja a legnagyobb számot <sxh python> 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) </sxh>

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! <sxh python> 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) </sxh>

3. feladat: Adott egy lista szavakkal. Készíts új listát, amely minden szót fordítva tartalmaz! <sxh python> 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) </sxh>

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

<sxh python> 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) </sxh>

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

<sxh python> 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) </sxh>

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

<sxh python> 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)) </sxh>

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