Python programozás - Szoftverfejlesztés fórum

üzenetek

hozzászólások


cousin333
(addikt)
Blog

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. :B

ui: Tényleg ennyire nem használja senki ezt a programnyelvet? :F

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 ]

üzenetek