Bird
Raised Fist0
Pythonprogramming~5 mins

Lambda with sorted() in Python - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What does the sorted() function do in Python?
It returns a new list containing all items from the iterable in ascending order by default.
Click to reveal answer
beginner
What is a lambda function in Python?
A lambda function is a small anonymous function defined with the lambda keyword, which can take any number of arguments but has only one expression.
Click to reveal answer
intermediate
How do you use a lambda function with sorted()?
You pass the lambda function to the key parameter of sorted() to specify the value to sort by for each item.
Click to reveal answer
intermediate
Example: Sort a list of tuples by the second item using sorted() and lambda.
sorted_list = sorted([(1, 3), (2, 1), (3, 2)], key=lambda x: x[1]) # Result: [(2, 1), (3, 2), (1, 3)]
Click to reveal answer
intermediate
How to sort a list of strings by their length using sorted() and lambda?
Use sorted(strings, key=lambda s: len(s)) to sort strings by length from shortest to longest.
Click to reveal answer
What does the key parameter in sorted() do?
ASpecifies a function to extract a comparison key from each element.
BChanges the original list in place.
CReverses the list before sorting.
DFilters elements before sorting.
Which of these is a valid lambda function to sort a list of numbers in descending order using sorted()?
Asorted(numbers, key=lambda x: -x)
Bsorted(numbers, key=lambda x: x)
Csorted(numbers, reverse=False)
Dsorted(numbers, key=lambda x: x+1)
What will this code output? sorted(['apple', 'banana', 'cherry'], key=lambda x: x[0])
A['cherry', 'banana', 'apple']
B['banana', 'apple', 'cherry']
C['apple', 'cherry', 'banana']
D['apple', 'banana', 'cherry']
How can you sort a list of dictionaries by the value of the key 'age' using lambda?
Asorted(list_of_dicts, key=lambda d: age)
Bsorted(list_of_dicts, key=lambda d: d.age)
Csorted(list_of_dicts, key=lambda d: d['age'])
Dsorted(list_of_dicts, key=lambda d: d.get('name'))
What is the output of sorted([3, 1, 2], key=lambda x: x % 2)?
A[1, 2, 3]
B[2, 3, 1]
C[3, 1, 2]
D[1, 3, 2]
Explain how to use a lambda function with sorted() to sort a list of complex items.
Think about how to tell Python what part of each item to sort by.
You got /4 concepts.
    Describe a real-life example where sorting with a lambda function would be useful.
    Consider sorting a list of people by age or sorting products by price.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the key argument do when used with sorted() and a lambda function in Python?
      easy
      A. It reverses the order of the sorted list automatically.
      B. It changes the original list to a sorted list in place.
      C. It tells sorted() how to compare items by extracting a value from each item.
      D. It filters out items that do not match the lambda condition.

      Solution

      1. Step 1: Understand the role of key in sorted()

        The key argument takes a function that extracts a value from each item to use for sorting.
      2. Step 2: Understand how lambda works with key

        The lambda function defines this extraction rule inline, telling sorted() what to compare.
      3. Final Answer:

        It tells sorted() how to compare items by extracting a value from each item. -> Option C
      4. Quick Check:

        key=lambda x: value means compare by value [OK]
      Hint: Remember: key=lambda extracts sort value from each item [OK]
      Common Mistakes:
      • Thinking key changes the original list
      • Confusing key with reverse sorting
      • Assuming lambda filters items
      2. Which of the following is the correct syntax to sort a list of tuples data = [(2, 'b'), (1, 'a'), (3, 'c')] by the first element using sorted() and a lambda?
      easy
      A. sorted(data, key=lambda x: x[0])
      B. sorted(data, lambda x: x[0])
      C. sorted(data, key=lambda x: x[1])
      D. sorted(data, key=x[0])

      Solution

      1. Step 1: Identify the correct use of key argument

        The key argument must be named and assigned a function, here a lambda.
      2. Step 2: Check lambda syntax and index

        lambda x: x[0] correctly extracts the first element of each tuple for sorting.
      3. Final Answer:

        sorted(data, key=lambda x: x[0]) -> Option A
      4. Quick Check:

        Correct syntax uses key= and lambda with index [OK]
      Hint: Always use key= with lambda for sorting rules [OK]
      Common Mistakes:
      • Omitting key= argument name
      • Using wrong tuple index
      • Passing lambda as second positional argument
      3. What is the output of this code?
      data = ['apple', 'banana', 'cherry']
      sorted_list = sorted(data, key=lambda x: len(x))
      print(sorted_list)
      medium
      A. ['apple', 'banana', 'cherry']
      B. ['banana', 'cherry', 'apple']
      C. ['cherry', 'banana', 'apple']
      D. ['apple', 'cherry', 'banana']

      Solution

      1. Step 1: Understand sorting by length

        The lambda extracts the length of each string: apple(5), banana(6), cherry(6).
      2. Step 2: Sort strings by their length

        Sorted order by length is: apple(5), banana(6), cherry(6). Since banana and cherry have same length, original order among them is preserved (banana before cherry).
      3. Final Answer:

        ['apple', 'banana', 'cherry'] -> Option A
      4. Quick Check:

        Sort by len(x) = ['apple', 'banana', 'cherry'] [OK]
      Hint: Sort by length with key=lambda x: len(x) [OK]
      Common Mistakes:
      • Assuming alphabetical sort instead of length
      • Mixing order of equal length items
      • Forgetting sorted returns new list
      4. Find the error in this code snippet:
      data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]
      sorted_data = sorted(data, key=lambda x: x['age'])
      print(sorted_data)
      medium
      A. The code will raise a KeyError because 'age' is missing.
      B. There is no error; the code sorts by age correctly.
      C. The lambda function should use double quotes for keys.
      D. sorted() cannot sort dictionaries.

      Solution

      1. Step 1: Check dictionary keys and lambda syntax

        Each dictionary has the key 'age', and lambda accesses it correctly with single quotes.
      2. Step 2: Confirm sorted() usage on list of dicts

        sorted() can sort list of dictionaries using key function; no error occurs.
      3. Final Answer:

        There is no error; the code sorts by age correctly. -> Option B
      4. Quick Check:

        Access dict keys with quotes; sorted works on list of dicts [OK]
      Hint: Dictionaries can be sorted by key with lambda [OK]
      Common Mistakes:
      • Thinking single quotes cause error
      • Assuming KeyError without missing keys
      • Believing sorted() can't handle dicts
      5. You have a list of tuples representing products and their prices:
      products = [('pen', 1.5), ('notebook', 2.0), ('eraser', 0.5), ('pencil', 1.5)]
      How would you sort this list first by price ascending, then by product name alphabetically using sorted() and lambda?
      hard
      A. sorted(products, key=lambda x: x[1] and x[0])
      B. sorted(products, key=lambda x: x[1] or x[0])
      C. sorted(products, key=lambda x: x[0], x[1])
      D. sorted(products, key=lambda x: (x[1], x[0]))

      Solution

      1. Step 1: Understand sorting by multiple criteria

        To sort by price then name, use a tuple in key: (price, name).
      2. Step 2: Write lambda returning tuple for sorting

        lambda x: (x[1], x[0]) returns price first, then product name.
      3. Final Answer:

        sorted(products, key=lambda x: (x[1], x[0])) -> Option D
      4. Quick Check:

        Use tuple in key=lambda for multi-level sort [OK]
      Hint: Use tuple in lambda key for multi-level sorting [OK]
      Common Mistakes:
      • Using logical operators instead of tuple
      • Passing multiple key arguments
      • Reversing order of sort keys