Megszámolás

Az előző három tétel arról szólt, hogy a listánkat átnyálaztuk adott tulajdonságú elem után kutatva. Ha találtunk ilyen elemet, akkor csináltunk vele valamit (kiírtuk, változóba töltöttük az értékét, változóba töltöttük az indexét), majd angolosan távoztunk. A távozásnak alapvetően két módja volt:

  1. break-kel kiugrottunk a for-ciklusból, és azt is elfelejtettük, hogy valaha járunk ott (többnyire ezt használtuk)
  2. while-ciklus esetén meg a ciklus elején lévő feltétellel gondoskodunk róla, hogy többé ne menjünk vissza a ciklusba

Hát ennek vége! Elég a sunyiságból!! Mostantól végigcsináljuk, amit elkezdtünk!!! Ennek a mondatnak a végén már négy felkiáltójel lesz!!!!

A megszámolás a kemények tétele! Ez innen is látszik:

A megszámolás tétele

alapvetően arról szól, hogy

  • definiálunk egy számlálót: egy változót, amiben számon tartjuk, hogy eddig hány, a keresett tulajdonsággal bíró elemet találtunk; a számláló kezdeti értéke nulla
  • végigjárjuk a bejárható objektum összes értékét, és ha egy elem adott tulajdonságú, akkor növeljük a számlálót

Lássuk ezt videón:

Mondatszerű leírással:


sorozat = valamilyen lista, range, vagy más bejárható objektum

számláló = 0

ciklus sorozat minden elem-ére
    ha az elem keresett tulajdonságú:
        növeljük a számlálót
    elágazás vége
ciklus vége

Pythonban, értékek szerint bejárva a bejárható objektumunkat (többnyire ezt használjuk):


számláló = 0

for elem in bejárható_objektum:
    if elem olyan_amilyet_keresünk:
        számláló += 1

Pythonban, indexek szerint bejárva a bejárható objektumunkat (ez kell, ha a szomszédos elemekhez akarjuk hasonlítgatni az adott elemet):


számláló = 0

for index in range(len(bejárható_objektum)):
    if bejárható_objektum[index] olyan_amilyet_keresünk:
        számláló += 1

A Python egyszerűsítése

  • Már ismered, de a teljesség kedvéért ideírom: működik az ['alma', 'körte', 'alma', 'alma'].count('alma'), más formában a listanév.count(keresett_elem) utasítás, azaz a lista objektumtípus count() tagfüggvénye. Szokás szerint nem használható a bonyolultabb esetekben.

Feladatok

F0025a: Vágd be a megszámolás tételét!

F0025b: Dobj fel egy kockát 100000-szer, a dobásokat tárold listában! Hány hatosod van? (Megoldás itt.)

F0025c: Hány 10-nél nagyobb szám van a 3, 6, 12, 3, 14, 5, 18 listában? (Megoldás itt.)

F0025d: Hozz létre egy 100 elemű listát 0 és 100 közötti számokból! Mennyi belőle összesen a 30-nál kisebb  és a 60-nál nagyobb szám? (Megoldás itt.)

F0025e: Mennyi a következő listában összesen a piros meg a kék? [‘piros’, ‘zöld’, ‘kék’, ‘kék’, ‘piros’, ‘zöld’, ‘sárga’, ‘kék’, ‘piros’] (Megoldás itt.)

F0025f: Dobj fel egy kockát 100000-szer, a dobásokat tárold listában! Hányszor sikerült kidobnod az egyes számokat? (Megoldás itt.)

F0025g: Dobj fel egy kockát 100000-szer, a dobásokat tárold listában! Hányszor sikerült kidobnod az egyes számokat? Az eredményeket tárold listában! (Megoldás itt.)

F0025h: Hozz létre egy 100 elemű listát 0 és 100 közötti számokból! Hány olyan páros szám van benne, ami után is páros szám áll? (Megoldás itt.)

F0025i: A ‘fele’, ‘fölfele’, ‘ferde’, ‘felette’, ‘zabkeksz’ szólistában (érted, szólista, aki egyedül játszik egy hangszeren) hány olyan szó van ami f-fel kezdődik és e-re végződik? (Megoldás itt.)

Legutóbb lineárisan kerestünk. Legközelebb megtudjuk, hogy mennyi a legtöbb.

Advertisements

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s