Új hozzászólás Aktív témák

  • cousin333

    addikt

    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 ]

    "We spared no expense"

Új hozzászólás Aktív témák