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

  • cousin333

    addikt

    válasz kezdosql #1178 üzenetére

    A list comprehension-re találtam egy jónak tűnő fordítást: listaképző

    Ez a funkció tulajdonképpen egy tipikus for ciklus alkalmazásnak a tömörebb megfogalmazására szolgál: amikor egy meglévő listán (pontosabban iterálható elemen) kell végigmenni, hogy elemről-elemre haladva az egyes elemeken végrehajtott műveletek segítségével egy új listát hozzunk létre.

    Például ha minden elemhez hozzá akarunk adni 2-t, és ebből lesz az y.

    x = [1, 2, 3, 4, 5]
    y = []

    for elem in x:
    y.append(elem+2)

    Ezt leegyszerűsíthetjük egy (két) sorra, így nincs a felesleges értékadás az elején és nem kell egyesével hozzáadogatni az új elemeket sem.

    x = [1, 2, 3, 4, 5]
    y = [elem + 2 for elem in x]

    Ráadásul lehet megadni feltételt is, mindezt szintén egy sorban:

    x = [1, 2, 3, 4, 5]
    y = [elem+2 for elem in x if elem % 2 == 0]

    Ennek a "hagyományos" megfelelője:

    x = [1, 2, 3, 4, 5]
    y = []

    for elem in x:
    if elem % 2 == 0:
    y.append(elem+2)

    Az első esetekben az eredményül kapott y hossza megegyezik az x-ével, az utóbbinál meg rövidebb, vagy egyenlő.

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