Skip to content

Latest commit

 

History

History
166 lines (112 loc) · 5.26 KB

9 Ways to Use Python Lambda Functions.md

File metadata and controls

166 lines (112 loc) · 5.26 KB

9 Ways to Use Python Lambda Functions

Slide 1: Introduction to Lambda Functions in Python

Lambda functions, also known as anonymous functions, are a powerful feature in Python that allow you to create small, one-time-use functions without formally defining them using the def keyword. They are particularly useful for simple operations and can make your code more concise and readable.

lambda arguments: expression

# Example: A lambda function that squares a number
square = lambda x: x**2
print(square(5))  # Output: 25

Slide 2: Using Lambda with Map Function

The map() function applies a given function to each item in an iterable. Lambda functions work well with map() for quick transformations.

celsius = [0, 10, 20, 30, 40]
fahrenheit = list(map(lambda c: (c * 9/5) + 32, celsius))
print(fahrenheit)  # Output: [32.0, 50.0, 68.0, 86.0, 104.0]

Slide 3: Lambda with Filter Function

The filter() function uses a function to filter elements from an iterable. Lambda functions can provide compact filtering criteria.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # Output: [2, 4, 6, 8, 10]

Slide 4: Sorting with Lambda Functions

Lambda functions can be used as key functions in sorting operations, allowing for custom sorting criteria.

pairs = [(1, 'one'), (3, 'three'), (2, 'two'), (4, 'four')]
sorted_pairs = sorted(pairs, key=lambda pair: pair[1])
print(sorted_pairs)
# Output: [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

Slide 5: Lambda in List Comprehensions

While not as common, lambda functions can be used within list comprehensions for more complex transformations.

numbers = [1, 2, 3, 4, 5]
squared = [(lambda x: x**2)(x) for x in numbers]
print(squared)  # Output: [1, 4, 9, 16, 25]

Slide 6: Conditional Expressions in Lambda Functions

Lambda functions can include conditional expressions, allowing for more complex logic in a compact form.

grade = lambda score: "Pass" if score >= 60 else "Fail"
print(grade(75))  # Output: "Pass"
print(grade(45))  # Output: "Fail"

Slide 7: Lambda Functions as Arguments

Lambda functions can be passed as arguments to other functions, making them useful for callback-style programming.

    return operation(x, y)

result = apply_operation(5, 3, lambda x, y: x + y)
print(result)  # Output: 8

result = apply_operation(5, 3, lambda x, y: x * y)
print(result)  # Output: 15

Slide 8: Real-Life Example: Data Processing

Lambda functions are often used in data processing tasks, such as cleaning or transforming data.

names = ["  John  ", "JANE  ", " Bob ", "  ALICE"]
cleaned_names = list(map(lambda name: name.strip().capitalize(), names))
print(cleaned_names)
# Output: ['John', 'Jane', 'Bob', 'Alice']

Slide 9: Real-Life Example: GUI Event Handling

In GUI programming, lambda functions can be used to create simple event handlers without defining separate functions.

root = tk.Tk()
button = tk.Button(root, text="Click me!", 
                   command=lambda: print("Button clicked!"))
button.pack()
root.mainloop()

Slide 10: Lambda Functions in Functional Programming

Lambda functions align well with functional programming concepts, allowing for the creation of higher-order functions.

    return lambda x: x * n

double = multiply_by(2)
triple = multiply_by(3)

print(double(5))  # Output: 10
print(triple(5))  # Output: 15

Slide 11: Lambda Functions with Reduce

The functools.reduce() function applies a function of two arguments cumulatively to the items of a sequence. Lambda functions work well with reduce for quick aggregations.

# Using lambda with reduce to find the product of a list of numbers
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product)  # Output: 120

Slide 12: Lambda Functions in Key-Value Pair Operations

Lambda functions can be useful when working with dictionaries or other key-value pair structures.

my_dict = {'apple': 5, 'banana': 2, 'cherry': 8, 'date': 1}
sorted_dict = dict(sorted(my_dict.items(), key=lambda item: item[1]))
print(sorted_dict)
# Output: {'date': 1, 'banana': 2, 'apple': 5, 'cherry': 8}

Slide 13: Lambda Functions in Mathematical Operations

Lambda functions can be used to create simple mathematical functions on the fly.

# Creating a set of trigonometric functions
sin = lambda x: math.sin(math.radians(x))
cos = lambda x: math.cos(math.radians(x))
tan = lambda x: math.tan(math.radians(x))

print(sin(30))  # Output: 0.5
print(cos(60))  # Output: 0.5
print(tan(45))  # Output: 1.0

Slide 14: Additional Resources

For those interested in diving deeper into Python lambda functions and functional programming concepts, the following resources from arXiv.org may be helpful:

  1. "Functional Programming in Python" by J. Vanderplas (arXiv:1904.04206) URL: https://arxiv.org/abs/1904.04206
  2. "Lambda Calculus and Programming Languages" by B. Pierce (arXiv:cs/0404056) URL: https://arxiv.org/abs/cs/0404056

These papers provide a more theoretical background on functional programming concepts and their implementation in various programming languages, including Python.