Informatika2-2013/Gyakorlat14

A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2013. május 14., 09:05-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Gyakorlat anyaga

A függvényközpontú programozás klasszikus elemei a Pythonban

A lambda kifejezések névtelen függvények, alakjuk:

lambda paraméterek: kifejezés

ahol a paraméterek egy esetleg üres lista, a kifejezés pedig egy elágazást, ciklust, return vagy yield utasítást nem tartalmazó (de esetleg feltételes) kifejezés lehet. Előnyük, hogy csak kifejezések, ezért más kifejezésekben is szerepelhetnek, és ha nem szükséges, nem kell nevet adni nekik. Csak nagyon egyszerű (félsoros) függvényekre használjuk!

lambda x: x ** 2
lambda x: "pozitív" if x > 0 else "nem pozitív"
lambda x, y: x + y

A ciklusok elkerülésére három egyszerű ,,klasszikus függvény szolgál:

  • megfeleltetés -- egy függvény egy bejárható (iterable) objektum minden elemére hat: map()
map(lambda x: x ** 2, [1, 2, 3, 4])  # [1, 4, 9, 16]
map(lambda x, y: x + y, [1, 2, 3, 4], [0, 10, 100, 1000]) 
                                # [1, 12, 103, 1004]
  • szűrés -- egy bejárható objektumnak csak azokat az elemeit tartjuk meg, amelyre egy függvény True értéket ad: filter()
filter(lambda x: x > 0, [-1, 2, -3, 4])  # [2, 4]
  • redukálás: reduce() (3.0-tól a standard könyvtárból törölve: functools.reduce())
 
Személyes eszközök