Na, megint megkísérlem feldobni a topikot. Szóval volt egy problémám, amit szerencsére már sikerült megoldani.
Adva van egy függvény, az egyszerűség kedvéért ez (a lényeg a több argumentum):
>>> def osszeg(a,b):
return a+b
Adott emellett két (nem feltétlenül, de most jelenesetben) egyforma hosszúságú lista:
>>> a = [1,2,3,4]
>>> b = [5,6,7,8]
A cél az volna, hogy párosával hívjuk meg velük az osszeg függvényünket. Erre egy megoldás lehet a map függvény használata.
>>> x = list(map(osszeg, a, b))
>>> print(x)
[6, 8, 10, 12]
Látható tehát, hogy a kívánt eredményt kaptuk. De mi van akkor, ha nem ilyen listáink vannak, hanem tuple-jet tartalmazó lista, amiket például így kaphatunk:
>>> c = list(zip(a,b))
>>> print(c)
[(1, 5), (2, 6), (3, 7), (4, 8)]
A kérdés, hogy ezt hogyan rakhatjuk be a map függvényünkbe. Nekem úgy tűnik, sehogy, helyette list comprehension-t kell használni, valahogy így:
>>> d = [osszeg(i,j) for i,j in zip(a,b)]
>>> print(d)
[6, 8, 10, 12]
A kérdés azonban nem a-ra és b-re vonatkozott elsősorban, hanem c-re, tehát egy tuple-kből álló listára. Mint mondtam, a map-al nekem nem sikerült a list comprehension-nal (ennek mi a magyar neve?) viszont igen. Így:
>>> e = [osszeg(i,j) for i,j in c]
>>> print(e)
[6, 8, 10, 12]
Köszönöm, csak ennyit akartam mondani, hátha valakinek segítségére voltam.
ui: Tényleg ennyire nem használja senki ezt a programnyelvet?
Lehet, hogy kellene írnom valami ismertetőt róla, bár én magam sem vagyok egy guru. De ebben a nyelvben éppen az a jó, hogy egyszerűen megtanulható, könnyen használható már alapszintű ismeretekkel is...
[ Szerkesztve ]