Cara menggunakan lambda python return

Kita sudah belajar untuk membuat function yaitu dengan def. Tetapi ada cara lain untuk membuat function, yaitu dengan lambda seperti ini:

lambda x: x % 2 == 0

code di atas sama dengan:

def is_genap(x):
  return x % 2 == 0

Perbedaannya adalah lambda tidak memerlukan nama selayaknya def. Maka karena itu juga function yang dibuat dengan lambda adalah function yang anonim. Anda pun bisa menggunakan lebih dari satu argumen dengan cara seperti ini:

lambda x, y: x + y

yang sama dengan:

def tambah(x, y):
  return x + y

Lambda kekuatannya akan terlihat jika kita menggunakan filter(). Function filter() menerima dua argumen/parameter seperti ini:

list_saya = range(11)
print filter(lambda x: x % 2 == 0, list_saya)

Di argumen pertama dari filter kita berikan sebuah lambda, di argumen keduanya kita berikan list yang akan disaringnya. Lambda yang kita berikan memberikan nilai True jika nilai 

def is_genap(x):
  return x % 2 == 0
0 adalah genap.


Instruksi:

Mungkin untuk sekarang gunanya lambda belum terlalu jelas buat anda. Tapi itu tidaklah masalah, yang utama sekarang adalah anda tahu bahwa lambda itu ada dan jika anda menemukan code ini di modul orang lain, anda tidak akan terkejut.

Lengkapi function lambda di samping yang hanya akan mencetak angka yang lebih besar daripada

def is_genap(x):
  return x % 2 == 0
1. Sebagai referensi caranya bagaimana, lihat code di contoh atas yang hanya akan mencetak angka yang genap.

Fungsi lambda lebih baik ditampilkan saat ingin menggunakannya sebagai fungsi anonim di dalam fungsi lain.

Katakanlah kita memiliki definisi fungsi yang membutuhkan satu argumen, dan argumen itu akan dikalikan dengan angka yang tidak diketahui:

def myfunc(n):
  return lambda a : a * n

Gunakan definisi fungsi itu untuk membuat fungsi yang selalu menggandakan nomor yang dikirimkan.

Contoh:

def myfunc(n):
  return lambda a : a * n

mydoubler = myfunc(2)

print(mydoubler(11))

Atau, gunakan definisi fungsi yang sama untuk membuat fungsi yang selalu melipatgandakan jumlah yang dikirimkan:

The power of lambda is better shown when you use them as an anonymous function inside another function.

Say you have a function definition that takes one argument, and that argument will be multiplied with an unknown number:

Python Lambda functions are functions that do not have any name. Hence they are also known as anonymous or nameless functions. The word ‘lambda’ is a keyword. The function that follows the ‘lambda’ keyword is anonymous.

Functions Vs Lambda functions:

  • To define normal functions in function in Python, we use the ‘def’ keyword. We use ‘lambda’ keyword to define anonymous functions.
  • The lambda function can have any number of arguments, but they can return only one value in the form of expression. The Python lambda functions are syntactically restricted to a single expression.

Why use Python Lambda Functions?

  • Lambda functions come into the picture when we need a function only once.
  • Python Lambda functions are often used with built-in functions like filter(), map(), reduce(), etc.,
  • Using Lambda functions reduces the number of lines of code compared to normal functions.

Syntax:

lambda arguments:expression

As mentioned already, a lambda function can take any number of arguments but a single expression. Hence the number of arguments ranges from 0 to any number.

Examples:

With a single argument:

Here is an example to print the square root of a number.

a=lambda x:x**(1/2)
print(a(225))
15.0

x – is the argument.

x**(1/2) – The expression that gets evaluated.

lambda x:x**(1/2) – anonymous function which returns a function object.

>>> print(lambda x: x**(1/2))
<function <lambda> at 0x048388A0>

With multiple arguments:

Below is an example of a python lambda function that accepts multiple parameters.

a=lambda a,b,c:a+b+c
print(a(3,10,12))
25

When we write the same example using normal functions, which will take more lines. For instance,

def func(a,b,c):
    return a+b+c

print(func(3,10,12))

You might get this question, when we say lambda as nameless functions, then why we need to assign lambda function to some variable and call the lambda function using a variable. In general, we use lambda functions with higher-order functions and built-in functions like filter, map, reduce, etc.,

Lambda functions with normal functions:

def func(x):
    return lambda :x*x

a=func(4)
b=func(5)
print(a())
print(b())
16
25

In the above example, the function func() returns a lambda function. Whenever we call the func(), we make use of the lambda function.

lambda function with filter:

The filter function filters the iterable with the help of another function. The filter function takes the function to filter the iterable and iterable as an argument.

Syntax:

filter(function, iterable)

Example:

Let’s see an example to filter the even numbers from the list.

a=lambda x:x**(1/2)
print(a(225))
0
a=lambda x:x**(1/2)
print(a(225))
1

lambda function with map:

The map function applies a function to all the values in an iterable. The map function takes the function to be applied to the iterable and iterable as an argument.

Syntax:

a=lambda x:x**(1/2)
print(a(225))
2

Example:

Get the even numbers from a list using the map function.

a=lambda x:x**(1/2)
print(a(225))
3
a=lambda x:x**(1/2)
print(a(225))
4

lambda function with reduce:

The reduce function applies a function to all the values of an iterable and returns a single number. The reduce function takes the function and iterable as an argument.

Apa fungsi lambda pada python?

Intinya, lambda digunakan untuk membuat fungsi dalam satu baris ekspresi. Lambda bisa memiliki lebih dari satu argumen atau parameter, tapi hanya bisa memiliki satu ekspresi atau isi. Karena fungsi lambda tidak punya nama, jadi kita butuh variabel untuk menyimpannya.

Apa itu lambda dalam pemrograman?

Lambda adalah layanan komputasi yang memungkinkan Anda menjalankan kode tanpa perlu menyediakan atau mengelola server.

Apakah yang dimaksud dengan lambda atau anonymous function?

Lambda expressions dan anonymous function adalah fungsi yang tidak perlu diklarasikan tetapi dapat langsung digunakan sebagai sebuah ekspresi.