Bird
Raised Fist0
Pythonprogramming~20 mins

Lambda syntax and behavior in Python - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
๐ŸŽ–๏ธ
Lambda Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of a simple lambda function
What is the output of this Python code?
Python
func = lambda x: x * 3
result = func(4)
print(result)
A12
B7
CError
DNone
Attempts:
2 left
๐Ÿ’ก Hint
Remember that lambda functions return the expression result.
โ“ Predict Output
intermediate
2:00remaining
Lambda with multiple arguments
What will this code print?
Python
adder = lambda a, b: a + b
print(adder(5, 10))
A15
B510
CTypeError
DNone
Attempts:
2 left
๐Ÿ’ก Hint
The lambda adds two numbers.
โ“ Predict Output
advanced
2:30remaining
Lambda capturing variable in loop
What is the output of this code?
Python
funcs = []
for i in range(3):
    funcs.append(lambda: i)
results = [f() for f in funcs]
print(results)
A[0, 1, 2]
B[2, 2, 2]
C[0, 0, 0]
DTypeError
Attempts:
2 left
๐Ÿ’ก Hint
Lambdas capture variables by reference, not by value.
โ“ Predict Output
advanced
2:30remaining
Correct lambda capturing loop variable
What does this code print?
Python
funcs = []
for i in range(3):
    funcs.append(lambda i=i: i)
results = [f() for f in funcs]
print(results)
A[0, 0, 0]
B[2, 2, 2]
C[0, 1, 2]
DSyntaxError
Attempts:
2 left
๐Ÿ’ก Hint
Default arguments capture the current value at each loop iteration.
๐Ÿง  Conceptual
expert
3:00remaining
Behavior of lambda with mutable default argument
Consider this code snippet. What will be printed?
Python
def make_funcs():
    funcs = []
    lst = []
    for i in range(3):
        lst.append(i)
        funcs.append(lambda x=lst: x)
    return funcs

funcs = make_funcs()
for f in funcs:
    print(f())
ATypeError
B
[0]
[0, 1]
[0, 1, 2]
C
[]
[]
[]
D
[0, 1, 2]
[0, 1, 2]
[0, 1, 2]
Attempts:
2 left
๐Ÿ’ก Hint
Default arguments are evaluated once when the function is defined.

Practice

(1/5)
1. What does a lambda function in Python do?
easy
A. Creates a small anonymous function with a single expression
B. Defines a class with methods
C. Declares a variable
D. Imports a module

Solution

  1. Step 1: Understand lambda purpose

    A lambda function is a quick way to create a function without a name that returns the result of one expression.
  2. Step 2: Compare options

    Only Creates a small anonymous function with a single expression describes this behavior correctly. Other options describe unrelated Python features.
  3. Final Answer:

    Creates a small anonymous function with a single expression -> Option A
  4. Quick Check:

    Lambda = anonymous single-expression function [OK]
Hint: Lambdas are short unnamed functions with one expression [OK]
Common Mistakes:
  • Thinking lambda can have multiple statements
  • Confusing lambda with class or variable definitions
  • Assuming lambda needs a name
2. Which of the following is the correct syntax for a lambda function that adds two numbers x and y?
easy
A. lambda (x, y) { return x + y }
B. lambda x, y: x + y
C. def lambda(x, y): return x + y
D. lambda x, y => x + y

Solution

  1. Step 1: Recall lambda syntax

    In Python, lambda syntax is: lambda parameters: expression
  2. Step 2: Check each option

    lambda x, y: x + y matches correct syntax. Options B and D use other language styles. def lambda(x, y): return x + y wrongly uses def with lambda.
  3. Final Answer:

    lambda x, y: x + y -> Option B
  4. Quick Check:

    Correct lambda syntax = lambda params: expression [OK]
Hint: Remember: lambda params colon expression [OK]
Common Mistakes:
  • Using parentheses around parameters in lambda
  • Trying to use curly braces or return keyword
  • Mixing lambda with def syntax
3. What is the output of this code?
func = lambda x: x * 2
print(func(5))
medium
A. 10
B. 25
C. SyntaxError
D. None

Solution

  1. Step 1: Understand the lambda function

    The lambda takes input x and returns x multiplied by 2.
  2. Step 2: Calculate func(5)

    func(5) = 5 * 2 = 10
  3. Final Answer:

    10 -> Option A
  4. Quick Check:

    5 * 2 = 10 [OK]
Hint: Multiply input by 2 as lambda defines [OK]
Common Mistakes:
  • Confusing multiplication with addition
  • Expecting syntax error due to lambda
  • Thinking lambda returns None by default
4. Find the error in this lambda function:
double = lambda x: return x * 2
print(double(4))
medium
A. No error, code runs fine
B. Missing parentheses around x
C. Lambda cannot multiply numbers
D. Using 'return' inside lambda causes SyntaxError

Solution

  1. Step 1: Check lambda syntax rules

    Lambdas cannot contain statements like 'return'; they only have an expression.
  2. Step 2: Identify error in code

    The code uses 'return' inside lambda, which is invalid and causes SyntaxError.
  3. Final Answer:

    Using 'return' inside lambda causes SyntaxError -> Option D
  4. Quick Check:

    Lambda disallows 'return' keyword [OK]
Hint: Lambdas never use 'return' keyword [OK]
Common Mistakes:
  • Adding 'return' inside lambda
  • Thinking parentheses are mandatory around parameters
  • Believing lambda can't do math operations
5. You want to create a list of squares for numbers 1 to 5 using a lambda inside map. Which code correctly does this?
hard
A. list(map(lambda x: x*2, range(1, 5)))
B. map(lambda x: x**2, [1, 2, 3, 4, 5])
C. list(map(lambda x: x**2, range(1, 6)))
D. list(map(lambda x: x**2, range(5)))

Solution

  1. Step 1: Understand the goal

    Create squares of numbers 1 to 5 inclusive, so numbers are 1,2,3,4,5.
  2. Step 2: Check each option

    list(map(lambda x: x**2, range(1, 6))) uses range(1,6) which includes 1 to 5 and squares each number correctly.
    list(map(lambda x: x*2, range(1, 5))) doubles numbers and uses range(1,5) which excludes 5.
    map(lambda x: x**2, [1, 2, 3, 4, 5]) returns a map object, not a list.
    list(map(lambda x: x**2, range(5))) uses range(5) which is 0 to 4, not 1 to 5.
  3. Final Answer:

    list(map(lambda x: x**2, range(1, 6))) -> Option C
  4. Quick Check:

    Squares 1-5 with map and lambda [OK]
Hint: Use range(1,6) and lambda x: x**2 inside list(map()) [OK]
Common Mistakes:
  • Using range(5) which starts at 0
  • Forgetting to convert map to list
  • Using wrong lambda expression like x*2