У овом чланку ћемо покушати да научимо о Питхон Ламбди.
Дефиниција
Ламбда је функција дефинисана без имена. Ово може потрајати више аргумената, али дозвољен је само један израз који се процењује и враћа. Тамо где су потребни објекти функције, можемо користити ламбда функцију.
Синтакса:
ламбда аргументи: израз
Пример 1: Функција у наставку се користи за израчунавање коцке броја.
деф коцка (а):врати а * а * а
принт (коцка (3))
Горња функција се може написати помоћу ламбда, као што је приказано доле:
п = ламбда к: к * к * киспис (п (3))
Пример 2: Функција у наставку се користи за израчунавање збира два броја.
деф сум_2 (к, и):повратак к + и
испис (збир_2 (10,20))
Горња функција се може написати помоћу ламбда, као што је приказано доле:
п = ламбда к, и: к + ииспис (п (10,20))
Пример 3: Следећи пример за ламбда узима више аргумената.
п = ламбда к, и, з: к + и + зиспис (п (10, 5, 3))
Пример 4: Ова функција множи број са 2 и може се записати помоћу Ламбда функције као што је приказано доле:
деф фунц (н):врати ламбда к: к * н
мултипли_би_2 = фунц (2)
испис (множење_би_2 (11))
испис (мултипли_би_2 (15))
Пример 5: Функција узима функцију као аргумент и враћа резултат.
фунцтион_аргумент = ламбда п, ф: п + ф (п)испис (аргумент_функције (5, ламбда п: п * п))
испис (аргумент_функције (10, ламбда к: к - 3))
испис (аргумент_функције (10, ламбда к: к + 5))
испис (аргумент_функције (10, ламбда к: к / 5))
Пример 6: У примеру испод, ламбда се користи за сортирање вредности.
# (име, презиме, старост)подаци = [("Сацхин", "Тендулкар", "42"), ("Рахул", "Дравид", "44"), ("Вирендра", "Сехваг", "40")]
подаци.сортирање (кључ = ламбда к: к [0]) # сортирање на основу имена
испис (подаци)
подаци = [("Сацхин", "Тендулкар", "42"), ("Рахул", "Дравид", "44"), ("Вирендра", "Сехваг", "40")]
подаци.сортирати (кључ = ламбда к: к [1]) # сортирати на основу презимена
испис (подаци)
подаци = [("Сацхин", "Тендулкар", "42"), ("Рахул", "Дравид", "44"), ("Вирендра", "Сехваг", "40")]
подаци.сортирај (кључ = ламбда к: к [2]) # сортирај на основу старости
испис (подаци)
Сада идите на питхон3 интерпретер.
Ламбда функција се користи у многим уграђеним методама. Следе неки примери:
1. Мапа
Ова функција мапира сваки елемент у низу помоћу ламбда функције.
Синтакса:
мапа (функција, сек)
Пример:
нумс = [1,2,3,4,5,6]
Овде ћемо помножити сваки елемент на листи са 2.
мул_2 = мапа (ламбда к: к * 2, бројеви)
принт (лист (мул_2)) # Враћа објект мапе и откуцава га као списак.
У горњој функцији, сваки елемент листе се преноси ламбда функцији и ламбда функција ће га помножити са 2.
нумс = [1,2,3,4,5,6]мул_2 = мапа (ламбда к: к * 2, бројеви)
испис (листа (мул_2))
2. Филтер
Ова функција филтрира све елементе листе за које ламбда функција враћа Труе.
Синтакса:
филтер (функција, сек)
Пример:
бројеви = [0,1,2,3,4,5,6,7,8,9,10]
одд_нумс = филтер (ламбда к: к% 2, бројеви)
принт (лист (одд_нумс)) # Враћа објект мапе и куца га као списак.
одд_нумс = филтер (ламбда к: к% 2, бројеви)
испис (листа (непарни бројеви))
3. Смањите
Ова функција враћа једну вредност применом функције фунц () на сек.
Синтакса:
смањити (фунц, сек)
Пример:
бројеви = [0,1,2,3,4,5,6,7,8,9,10]
вредност = смањити (ламбда к, и: к + и, бројеви)
испис (вредност)
На горњој листи ће узети прва 2 елемента и извршити сабирање. Резултат сабирања додаће се трећем елементу и тако даље. Коначно, вратиће једну вредност.
Напомена: Овај метод није доступан у верзији питхон3 +.
бројеви = [0,1,2,3,4,5,6,7,8,9,10]вредност = смањити (ламбда к, и: к + и, бројеви)
испис (вредност)
Закључак
Из овог чланка научили смо многе аспекте ламбда функције. У зависности од тога шта је програму потребно, можемо га користити и побољшати питхон кодирање. Ово се најчешће користи за прослеђивање аргумената другој функцији (на пример, видели смо горе функције како мапирају, филтрирају и смањују).