Bird
Raised Fist0
Pythonprogramming~10 mins

Lambda vs regular functions in Python - Interactive Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a lambda function that adds 5 to a number.

Python
add_five = lambda x: x [1] 5
print(add_five(10))
Drag options to blanks, or click blank then click option'
A-
B+
C*
D/
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using '-' instead of '+' will subtract instead of add.
Using '*' or '/' will multiply or divide, not add.
2fill in blank
medium

Complete the regular function to return the square of a number.

Python
def square(num):
    return num [1] num

print(square(4))
Drag options to blanks, or click blank then click option'
A/
B+
C-
D*
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using '+' will add the number to itself, not square it.
Using '-' or '/' will not give the square.
3fill in blank
hard

Fix the error in the lambda function that should multiply two numbers.

Python
multiply = lambda a, b: a [1] b
print(multiply(3, 7))
Drag options to blanks, or click blank then click option'
A*
B+
C-
D/
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using '+' adds instead of multiplies.
Using '-' or '/' will not multiply.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps numbers to their squares using a lambda.

Python
square_func = lambda x: x [1] x
squares = {num: square_func(num) for num in range(1, 6) if num [2] 3}
print(squares)
Drag options to blanks, or click blank then click option'
A*
B>
C<
D+
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using '+' in lambda adds instead of squares.
Using '<' includes numbers less than 3, not greater.
5fill in blank
hard

Fill all three blanks to create a lambda that filters even numbers and returns their squares in a dictionary.

Python
is_even = lambda n: n [1] 2 == 0
square = lambda x: x [2] x
result = {num: square(num) for num in range(1, 11) if is_even(num) [3] True}
print(result)
Drag options to blanks, or click blank then click option'
A%
B*
C==
D!=
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using '!=' instead of '==' changes the condition.
Using '+' instead of '*' does not square the number.
Using '/' instead of '%' does not check evenness.

Practice

(1/5)
1. Which of the following best describes a lambda function in Python?
easy
A. A function defined using def that can have multiple statements.
B. A short, anonymous function defined with the lambda keyword.
C. A function that must always return None.
D. A function that can only be used inside classes.

Solution

  1. Step 1: Understand lambda function definition

    A lambda function is defined using the lambda keyword and is anonymous (no name).
  2. Step 2: Compare with regular functions

    Regular functions use def and can have multiple statements, unlike lambdas which are single expressions.
  3. Final Answer:

    A short, anonymous function defined with the lambda keyword. -> Option B
  4. Quick Check:

    Lambda = short anonymous function [OK]
Hint: Lambdas are short and nameless functions [OK]
Common Mistakes:
  • Thinking lambdas can have multiple statements
  • Confusing lambda with regular def functions
  • Believing lambdas must return None
2. Which of the following is the correct syntax for a lambda function that adds 5 to its input?
easy
A. def add_five(x): return x + 5
B. lambda x x + 5
C. lambda x: x + 5
D. lambda (x): return x + 5

Solution

  1. Step 1: Recall lambda syntax

    A lambda function is written as lambda parameters: expression without def or return.
  2. Step 2: Check each option

    lambda x: x + 5 matches the correct syntax: lambda x: x + 5. Others have syntax errors or use def.
  3. Final Answer:

    lambda x: x + 5 -> Option C
  4. Quick Check:

    Lambda syntax = lambda params: expression [OK]
Hint: Lambda uses colon, no def or return [OK]
Common Mistakes:
  • Including 'def' or 'return' in lambda
  • Missing colon after parameters
  • Using parentheses incorrectly
3. What is the output of the following code?
add = lambda x, y: x + y
def add_func(x, y):
    return x + y

print(add(3, 4))
print(add_func(3, 4))
medium
A. 7\n7
B. 34\n34
C. TypeError\nTypeError
D. None\nNone

Solution

  1. Step 1: Understand lambda and regular function behavior

    Both add (lambda) and add_func (regular) add two numbers and return the sum.
  2. Step 2: Evaluate the print statements

    Calling add(3, 4) and add_func(3, 4) both return 7, so output is two lines with 7.
  3. Final Answer:

    7 7 -> Option A
  4. Quick Check:

    Both add functions return sum = 7 [OK]
Hint: Both lambda and def return same result if logic matches [OK]
Common Mistakes:
  • Thinking lambda returns string concatenation
  • Confusing output with error messages
  • Assuming lambda can't return values
4. Identify the error in this code snippet:
multiply = lambda x, y:
    x * y

print(multiply(2, 3))
medium
A. No error; output is 6
B. SyntaxError due to missing colon after lambda parameters
C. TypeError because lambda cannot take two arguments
D. IndentationError because lambda body is on new line

Solution

  1. Step 1: Check lambda syntax rules

    Lambda functions must have their expression on the same line as the lambda keyword and parameters.
  2. Step 2: Analyze the code structure

    The code places the expression x * y on the next line, causing an IndentationError.
  3. Final Answer:

    IndentationError because lambda body is on new line -> Option D
  4. Quick Check:

    Lambda body must be on same line [OK]
Hint: Lambda body must be on same line as parameters [OK]
Common Mistakes:
  • Placing lambda body on next line
  • Adding colon after lambda parameters
  • Thinking lambda can't take multiple arguments
5. You want to sort a list of tuples by the second item using a function. Which is the best way to write the key function?
hard
A. list.sort(key=lambda t: t[1])
B. def get_second(t): return t[1] list.sort(key=get_second(t))
C. list.sort(key=lambda t t[1])
D. list.sort(key=get_second())

Solution

  1. Step 1: Understand sorting with key functions

    The key parameter expects a function that takes one argument and returns the value to sort by.
  2. Step 2: Evaluate options for correctness and efficiency

    def get_second(t): return t[1] list.sort(key=get_second(t)) defines a regular function but incorrectly calls get_second(t) (causing NameError: 't' not defined). list.sort(key=lambda t: t[1]) uses a lambda inline, which is concise and common. list.sort(key=lambda t t[1]) has syntax error (missing colon). list.sort(key=get_second()) calls get_second() instead of passing the function.
  3. Step 3: Choose best practice

    Using a lambda inline is best for simple, one-time use functions.
  4. Final Answer:

    list.sort(key=lambda t: t[1]) -> Option A
  5. Quick Check:

    Lambda inline for simple key function [OK]
Hint: Use lambda inline for simple sort keys [OK]
Common Mistakes:
  • Forgetting colon in lambda
  • Calling function instead of passing it
  • Using multi-line def when lambda suffices