Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet két listát...

Hogyan lehet két listát összekapcsolni?

Figyelt kérdés

A 2014 októberi emelt érettségit csinálom, a 'Nézőteret', és ennél az egynél elakadtam. Ez az 5-ös feladat, de a 7-es feladatban is visszaköszönt.

[link]

Valami ilyennel próbálkoztam nem sok sikerrel:

a=[i for i in zip(foglaltsag[i],kategoria[i])]


2017. máj. 13. 22:43
 1/7 anonim ***** válasza:

For ciklussal sikerült? Ha ennyire nem megy a comprehension, nem kell erőltetni.

A zip() egyébként két tömböt vár(nem elemeket), és tuple-t ad vissza, már csak ezért sem jó amit írsz, meg egyébként sem.

2017. máj. 14. 08:13
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

Értékelve, hogy szereted a kihívásokat, az 5-ös feladat megoldási menete comprehensionökkel (és magyarázatokkal):


foglaltsag = "ooxxxoxoxoxoxxxooxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoooxxxxxxxxxxo"

kategoria = "332221111111111222334332222111111222233444433322222222333444"

ar = {'1': 5000; '2': 4000; '3': 3000; '4': 2000: '5': 1500}


# a zip használata: minden hely foglaltsága és kategóriája

helyek = [(fogl, kat) for (fogl, kat) in zip(foglaltsag, kategoria)]

# csak az eladott jegyek kategóriája

eladott_jegyek = [kat for (fogl, kat) in zip(foglaltsag, kategoria) if fogl=="x"]

# az egyes kategóriákban eladott jegyek száma

eladott_kategoriak = dict((kat, eladott_jegyek.count(kat)) for kat in set(eladott_jegyek))

# a bevétel

bevetel = sum([eladott_kategoriak.get(kat, 0)*ar[kat] for kat in ar.keys()])

2017. máj. 14. 15:48
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

A 7es feladat pedig egy sorban:

szabad = ''.join(map(lambda (fogl, kat): 'x' if fogl=='x' else kat, [(fogl, kat) for (fogl, kat) in zip(foglaltsag, kategoria)]))

2017. máj. 14. 16:16
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
Te jó isten, köszönöm szépen :)))
2017. máj. 14. 18:11
 5/7 A kérdező kommentje:

Észrevettem egy nagyon apró hibát, hogy a foglaltságot nem tagonként köti a kategóriához, hanem soronként, de orvosoltam a hibát:

helyek = [(fogl, kat) for (fogl, kat) in zip(''.join(foglaltsag), ''.join(katagoria))]


eladott_jegyek = [kat for (fogl, kat) in zip(''.join(foglaltsag), ''.join(kategoria)) if fogl=="x"]

2017. máj. 14. 20:08
 6/7 anonim ***** válasza:

Igen, akkor szükség van erre, ha soronként tárolod az értékeket. Az én megoldásomban már egybe voltak fűzve a sorok, így is adtam meg mindent.

Tanulság: a konkrét megvalósítás függ a használt adatszerkezetektől.

Örülök, hogy tudtam segíteni.

2017. máj. 14. 20:42
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:

Ja értem, szóval azért adtad meg úgy a foglaltságot és a kategóriát :))


Szépen kijött a 6-os,viszont a 7-esnél hibaüzenetet ír ki a lambda utáni zárójelnél. Van tipped, hogy mi lehet a hiba?

2017. máj. 14. 21:34

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!