⊗pyPmFnLa 16 of 129 menu

ლამბდა-ფუნქცია Python-ში

დავუშვათ გვაქვს ფუნქცია func, რომელიც პარამეტრებად იღებს სიას და კოლბექს. ფუნქცია შექმნის ახალ სიას საწყისი სიის ელემენტებიდან. ამ შემთხვევაში თითოეულ ელემენტზე გამოიყენება კოლბექი:

def func(lst, callback): res = [] for el in lst: res.append(callback(el)) return res

ახლა შევქმნათ ფუნქცია square, რომელიც მასზე გადაცემულ რიცხვს აყვანს კვადრატში:

def square(num): return num ** 2

მოდით გადავცეთ პარამეტრებად func რიცხვითი სია და ფუნქცია square როგორც კოლბექი:

print( func([1, 2, 3], square) )

კონსოლში გამოიყვანება ახალი სია, რომელიც შედგება რიცხვების კვადრატებისგან:

[1, 4, 9]

თუმცა ეს კოდი შესაძლებელია მნიშვნელოვნად შევამოკლოთ, ლამბდა-ფუნქციის გამოყენებით - ანონიმური ფუნქცია, რომელიც იძახება გასაღები სიტყვით lambda და იწერება ერთ სტრიქონში. ამიტომ ლამბდა-ფუნქციაში შესაძლებელია მხოლოდ იმ ფუნქციების გადაწერა, რომელთა კოდიც ერთ სტრიქონს იკავებს.

ლამბდა-ფუნქციის სინტაქსი ასე გამოიყურება:

lambda ფუნქციის_პარამეტრი: ოპერაცია_პარამეტრთან

მოდით გადავწეროთ ფუნქცია square ლამბდა-ფუნქციის დახმარებით და გადავცეთ ის პარამეტრად func:

print( func([1, 2, 3], lambda num: num ** 2) )

ლამბდა-ფუნქცია შესაძლებელია ჩაიწეროს ცვლადში:

square = lambda num: num ** 2 print( func([1, 2, 3], square) )

გადაწერეთ შემდეგი კოდი ლამბდა-ფუნქციის მეშვეობით:

def func(num, clb): return clb(num) def clb(num): return num + 1 print( func(2, clb) )

გადაწერეთ შემდეგი კოდი ლამბდა-ფუნქციის მეშვეობით:

def func(num, clb1, clb2): return (clb1(num), clb2(num)) def clb1(num): return num + 1 def clb2(num): return num - 1 print( func(2, clb1, clb2) )

გადაწერეთ შემდეგი კოდი ლამბდა-ფუნქციის მეშვეობით:

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა