Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!
Python segítség, lista
LM96
kérdése
57
1. Tölts fel egy listát számokkal, melyeket a felhasználó ad meg (kilépés: vége)
2. Melyik elemet távolítsuk el a listából:
Mindaddig távolítson el elemet a listából, amíg olyan értéket ad meg a felhasználó, ami megtalálható a listában!
Ez a feladat. Az első rész sima, ezzel meg is vagyok . A 2.-ban nem tudom hogyan kellene a ciklust formázni, hogy jó legyen. Jelenleg a lista.append() és a lista.remove() parancsokkal próbálkozom és ott tart a program, ha kiíratom, hogy mindig hozzáadja a számot amit újonnan beírok. Kérlek segítsetek milyen irányba induljak tovább!
Jelenleg 1 felhasználó nézi ezt a kérdést.
python, lista, while, ciklus, remove, append
0
Középiskola / Informatika
Válaszok
1
bnc{ Informatikus }
megoldása
Szia
Bár azt írtad, hogy kész az első rész, de azért összesítve írnám a tanácsomat, hogy ha esetleg más is ilyen feladattal bajlódna.
Alapvetően én ezt két ciklusra bontanám. Az első ciklust egy hátultesztelő ciklussal oldanám meg. Ennek a megvalósítása Pythonban nem feltétlenül egyértelmű. Úgy tudod megcsinálni, hogy kell egy while True, majd benne történik a beolvasás. Beolvasol, és ellenőrzöd, hogy a beolvasott adat "vége"-e. Ha igen, akkor megtöröd a ciklus futását a "break" utasítással. Ha pedig nem "vége" a bemenet, akkor szimplán append segítségével felveszed a tömbödbe az új számot.
A második feladatot félreértettem, így az erre adott javaslatot frissítem: (Köszi a kiegészítésért 2 hete nem aludtamnak)
Akkor itt is egy hátultesztelő ciklushoz hasonló megoldást csinálj, amiben bekérsz egy értéket. Ha az érték benne van a listában, akkor vedd ki. Ha pedig nincs, akkor törd meg a ciklust break-kel. Így ameddig olyan értékeket adsz meg amik benne vannak, addig végig törölni fog.
Próbáltam egy egyszerű, remélhetőleg számodra is érthető megoldási javaslatot tenni. Ha bármi kérdésed van, nyugodtan kérdezz.
Amennyiben a válaszom segített, kérlek jelöld meg megoldásként. Köszi
Módosítva: 1 hete
1
2 hete nem aludtam:
Én úgy értelmeztem, hogy adott esetben több értéket is el kell távolítani a tömbből, mert addig kell eltávolítani az értékeket újra és újra, amíg azok megtalálhatóak a listában. Így meg egyszerűbb szerintem egy sima if value in array ... else break megoldás.
1 hete1
bnc:
Igaz, rá kell jönnöm, hogy nem tudok olvasni. 1 hete0
LM96:
Köszi szépen! A két hátultesztelő ciklusom megvolt, az elv is megvolt, pontosan így gondolkodtam. Az az elméleti anyag hiányzott, hogy "ha az érték eleme a listának", pedig mint látom rém egyszerű, de valamiért túlbonyolítottam. Köszi szépen még egyszer mindkettőtöknek! 1 hete0