Olvasd be a rendelesek.txt fájlt egy adatbazis nevű listába.
📥 Fájlok letöltése
📋 A beolvasott adatok mezői
A zárójelben lévő információk azt mutatják, hogyan kezeld őket a feldolgozás során.
Ne felejtsd el átalakítani a mezőket a megfelelő adattípusra, kivéve ahol a feladat azt írja, hogy ne.
- x[0]: Rendelés ID (int)
- x[1]: Vevő neve (str)
- x[2]: Város (str)
- x[3]: Kategória (str)
- x[4]: Darabszám (int)
- x[5]: Fizetendő összeg (float vagy
"HIBÁS") (ne alakítsd át) - x[6]: Fizetési mód (str)
- x[7]: Kiszállítva státusz (bool)
- x[8]: Vevői értékelés 1.0–5.0 (float vagy
""ha hiányzik) (ne alakítsd át) - x[9]: Szállítási idő napokban (int, vagy -1 ha hibás)
⚙️ A metódusok működése és sorrendje (Példák):
- SZŰRÉS: Kiválogatjuk a megfelelő sorokat
szurt_adatok = list(filter(lambda x: <FELTÉTEL>, adatbazis)) - RENDEZÉS: Sorba állítjuk a szűrt listát (reverse=True, ha csökkenő)
rendezett_adatok = sorted(szurt_adatok, key=lambda x: <MI_ALAPJÁN>) - MAP-ELÉS: Csak a kért oszlopokat tartjuk meg
eredmeny = list(map(lambda x: <KÉRT_OSZLOPOK>, rendezett_adatok))
📖 Bevezető feladatok
1. Szűrd ki a már kiszállított (True) rendeléseket, rendezd őket darabszám szerint növekvő sorrendbe, majd szűkítsd a listát csak a Vevő nevére és a Darabszámra!
szurt_1 = list(filter(lambda x: x[7], adatbazis))
rendezett_1 = sorted(szurt_1, key=lambda x: x[4])
megoldas_1 = list(map(lambda x: [x[1], x[4]], rendezett_1))
Megoldás részletezése (olvasd el):
szurt_1 = list(filter(lambda x: x[7], adatbazis))- adatbazis: Az eredeti adathalmaz, amin a szűrést elvégezzük.
- filter() függvény: Kiszűri a sorokat az első paraméterben adott feltétel szerint.
- lambda x: x[7]: Az x[7] a Kiszállítva logikai értéke; ha True, megtartjuk.
- list() konverzió: A szűrőobjektumból újra listát készít.
rendezett_1 = sorted(szurt_1, key=lambda x: x[4])- szurt_1: Csak a már kiszűrt elemeket rendezzük tovább.
- key=lambda x: x[4]: A darabszám mező (4-es index) szerint rendez növekvő sorrendbe.
megoldas_1 = list(map(lambda x: [x[1], x[4]], rendezett_1))- map() függvény: Csak a megadott oszlopokat (Vevő neve:
x[1], Darabszám:x[4]) tartja meg.
- map() függvény: Csak a megadott oszlopokat (Vevő neve:
🚀 További feladatok és megoldások
Figyelj arra, hogy jelenleg néhány adatod stringként maradt eltárolva a listában (pl. hiányzó vagy hibás értékek miatt)!
1. Feladat: Szűrd ki az „Elektronika” kategóriájú rendeléseket, rendezd őket a Rendelés ID alapján csökkenő sorrendbe, és tartsd meg az ID-t, a Várost és a Fizetési módot!
👁️ Kattints ide a megoldás megtekintéséhez
szurt_1 = list(filter(lambda x: x[3] == "Elektronika", adatbazis))
rendezett_1 = sorted(szurt_1, key=lambda x: x[0], reverse=True)
megoldas_1 = list(map(lambda x: [x[0], x[2], x[6]], rendezett_1))
2. Feladat (Prémium): Szűrd ki azokat a rendeléseket, ahol legalább 5 darab terméket vásároltak, majd rendezd darabszám szerint csökkenőbe!
💻 Interaktív Kódszerkesztő és Tesztelés
A feladatok teszteléséhez előkészítettünk egy kisebb tesztadatbázist. Írd meg alá a lekérdezést, és kattints a Futtatás gombra!
🧠 Tudásellenőrző Kvíz
Teszteld a tudásodat a szűrés, rendezés és map metódusok együttes használatáról!