DEV Community

Cover image for Understanding and Using Lambda Functions in Python and Java

Posted on

Understanding and Using Lambda Functions in Python and Java

Lambda functions, also known as anonymous functions, can be challenging for beginners learning Python. However, understanding them is crucial for creating efficient and concise code. In essence, a Lambda function is a function without a name and is useful for executing simple expressions.

To write a Lambda function, you need three parts: the keyword lambda, a placeholder for the value to be passed to the expression, and the expression itself. The format of a Lambda function is lambda arguments : expression. For example, x = lambda a : a + 20 creates a function that adds 20 to a variable a and prints the result.

You can also create a Lambda function with multiple variables, such as a = lambda x, y : x * y. This function can be called by passing in values for x and y.

Lambda functions are advantageous for simple expressions that don't require a full function, and they can also be used within regular functions. By using return statements, you can incorporate Lambda functions into your regular functions for a more efficient option.

In Java, Lambda expressions were introduced in Java 8. They are short blocks of code that can take in parameters and return a value, similar to methods, but without a name. The basic syntax for a Lambda expression in Java is parameter -> expression. You can use a code block with curly braces to perform more complex operations, and the return statement is necessary to return a value in this case.

Lambda expressions in Java can be passed as parameters to functions or stored in variables. They can also be used as method parameters if the method has a parameter with a single-method interface as the type.

There are several types of Lambda expressions in Java, including those with no parameters, single or multiple parameters, a return statement, method references, and functional interfaces.

Java examples:

1. Lambda function to find the average of three numbers:

// single expression lambda function
double avg = (x, y, z) -> (x + y + z) / 3;

// printing the result
System.out.println("Average of 5, 10, and 15 is: " + avg(5, 10, 15)); // prints 10

2. Lambda function to check if a string contains a specific character:

// single expression lambda function
Predicate<String> containsChar = (str, ch) -> str.contains(ch);

// using the lambda function
String myStr = "Hello world";
System.out.println("Does 'Hello world' contain 'e'? " + containsChar.test(myStr, "e")); // prints "Does 'Hello world' contain 'e'? true"

Python examples:

1. Filter a list of names to only include names that start with a specific letter:

# lambda function using filter()
names = ["Anna", "Bob", "Chris", "Dylan", "Eric"]
filtered_names = list(filter(lambda x: x[0] == "A", names))
print(filtered_names) # prints ["Anna"]

2. Square each number in a list using map() and a lambda function:

# lambda function using map()
numbers = [1, 2, 3, 4, 5]
squared_nums = list(map(lambda x: x**2, numbers))
print(squared_nums) # prints [1, 4, 9, 16, 25]

In summary, Lambda functions in both Python and Java are excellent tools for writing efficient and concise code, particularly for simple expressions. By understanding how to use Lambda functions, you can improve your coding efficiency and create more elegant solutions to problems.

MyExamCloud Study Plans
Java Certifications Practice Tests - MyExamCloud Study Plans
Python Certifications Practice Tests - MyExamCloud Study Plans
AWS Certification Practice Tests - MyExamCloud Study Plans
Google Cloud Certification Practice Tests - MyExamCloud Study Plans
MyExamCloud Aptitude Practice Tests Study Plan
MyExamCloud AI Exam Generator

Top comments (0)