Capitolul Anterior: Expresii Regulate, Avansat
Capitolul Următor: Listă de Înțelegere

Lambda, filtru, reduce și hartă

Lambda Operator

Unora le place, alții îl urăsc și mulți se tem de lambda operator. Suntem încrezători că vă va plăceacând ați terminat cu acest capitol al tutorialului nostru., Dacă nu, puteți afla totul despre „List Comprehensions”, Guido van Rossums mod preferat de a face, pentru căel nu-i place Lambda, harta, se filtrează și se reduce fie.
operatorul lambda sau funcția lambda este o modalitate de a crea mici funcții anonime, adică funcții fără nume. Aceste funcții sunt funcții de aruncare, adică sunt necesare doar acolo unde au fost create.Funcțiile Lambda sunt utilizate în principal în combinație cu funcțiile filter (), map () și reduc ().Caracteristica lambda a fost adăugată la Python datorită cererii programatorilor Lisp.,
general sintaxa de o funcție lambda este destul de simplu:
lambda argument_list: expresie
lista argument constă dintr-o listă separată prin virgule de argumente și expressionis o expresie aritmetică folosind aceste argumente. Puteți atribui funcția unei variabile pentru a-i da un nume.
următorul exemplu de o funcție lambda returnează suma a două argumente:

>>> f = lambda x, y : x + y>>> f(1,1)2

hartă Funcția ()

avantajul lambda operator poate fi văzut atunci când este utilizat în combinație cu harta (funcția).,
map () este o funcție cu două argumente:

r = map(func, seq)

primul argument func este numele unei funcții, iar al doilea o secvență (de exemplu, o listă) seq. map () aplică funcția func la toate elementele secvenței seq. Se returnează o nouă listă cu elementele modificate de funcIn exemplul de mai sus nu am folosit lambda. Folosind lambda, nu ar fi trebuit să definim și să denumim funcțiile fahrenheit() și celsius(). Puteți vedea acest lucru în următoarea sesiune interactivă:map() poate fi aplicat la mai multe liste. Listele trebuie să aibă aceeași lungime., harta() va applyits lambda funcție de elementele de argument liste, și anume că primul se aplică la elementele cu 0th index, apoi la elemente cu 1 indicele de până n-lea indice este de ajuns:

>>> a = >>> b = >>> c = >>> map(lambda x,y:x+y, a,b)>>> map(lambda x,y,z:x+y+z, a,b,c)>>> map(lambda x,y,z:x+y-z, a,b,c)

putem vedea în exemplul de mai sus că parametrul x primește valori din lista a, în timp ce y getsits valorile din b și z din lista de c.

Filtrare

funcția de filtru(funcția, lista) oferă un mod elegant de a filtra toate elementele dintr-o listă,pentru care funcția returnează True.
filtrul de funcții (f, l) are nevoie de o funcție f ca prim argument., f returnează o valoare booleană, adică fie eitherTrue, fie False. Această funcție va fi aplicată fiecărui element al listei l. numai dacă F returnează True, elementul listei va fi inclus în lista de rezultate.

reducerea unei liste

funcția reducere (func, seq) aplică continuu funcția func () la secvența seq. Se întoarce asingle valoare.,
Dacă seq = , de asteptare reduce(func, seq) funcționează ca aceasta:
Vom ilustra acest proces în următorul exemplu:

>>> reduce(lambda x,y: x+y, )113

următoarea diagramă arată etapele intermediare de calcul:

Exemple de a reduce()

Determinarea maximă dintr-o listă de valori numerice cu ajutorul reduce:

>>> f = lambda a,b: a if (a > b) else b>>> reduce(f, )102>>> 

Calcularea sumei numerelor de la 1 la 100:

>>> reduce(lambda x, y: x+y, range(1,101))5050

Capitolul Anterior: Expresii Regulate, Avansat
Capitolul Următor: Listă de Înțelegere

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *