Bird
Raised Fist0
Pythonprogramming~20 mins

sorted() function 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
๐ŸŽ–๏ธ
Sorted Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
What is the output of sorting a list of tuples by the second element?
Consider the following Python code that sorts a list of tuples by the second item in each tuple.
Python
data = [(3, 4), (1, 2), (5, 1)]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)
A[(5, 1), (1, 2), (3, 4)]
B[(1, 2), (3, 4), (5, 1)]
C[(3, 4), (1, 2), (5, 1)]
D[(5, 1), (3, 4), (1, 2)]
Attempts:
2 left
๐Ÿ’ก Hint
Look at the second element of each tuple and sort by that.
โ“ Predict Output
intermediate
2:00remaining
What is the output when sorting a string with sorted()?
What will be printed by this code?
Python
result = sorted('banana')
print(result)
A['a', 'a', 'a', 'b', 'n', 'n']
B['b', 'a', 'n', 'a', 'n', 'a']
C['n', 'n', 'b', 'a', 'a', 'a']
D['a', 'b', 'n']
Attempts:
2 left
๐Ÿ’ก Hint
sorted() returns a list of characters sorted alphabetically.
โ“ Predict Output
advanced
2:00remaining
What is the output of sorting a dictionary by its values?
Given this dictionary, what will be the output of the sorted() call?
Python
scores = {'Alice': 88, 'Bob': 75, 'Charlie': 90}
sorted_scores = sorted(scores.items(), key=lambda item: item[1])
print(sorted_scores)
A[('Alice', 88), ('Bob', 75), ('Charlie', 90)]
B[('Bob', 75), ('Charlie', 90), ('Alice', 88)]
C[('Charlie', 90), ('Alice', 88), ('Bob', 75)]
D[('Bob', 75), ('Alice', 88), ('Charlie', 90)]
Attempts:
2 left
๐Ÿ’ก Hint
The key function sorts by the dictionary values.
โ“ Predict Output
advanced
2:00remaining
What is the output of sorting a list with reverse=True?
What will this code print?
Python
numbers = [4, 1, 7, 3]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)
A[4, 1, 7, 3]
B[1, 3, 4, 7]
C[7, 4, 3, 1]
D[7, 3, 4, 1]
Attempts:
2 left
๐Ÿ’ก Hint
reverse=True sorts from largest to smallest.
๐Ÿง  Conceptual
expert
2:00remaining
Which option will cause a TypeError when used with sorted()?
Which of these options will cause a TypeError when passed as the key argument to sorted()?
Akey=lambda x: x[0]
Bkey=5
Ckey=str.lower
Dkey=lambda x: len(x)
Attempts:
2 left
๐Ÿ’ก Hint
The key argument must be a function, not a number.

Practice

(1/5)
1. What does the sorted() function do in Python?
easy
A. Returns a new list with items arranged in order
B. Changes the original list to be sorted
C. Deletes all items from the list
D. Returns the largest item in the list

Solution

  1. Step 1: Understand the purpose of sorted()

    The sorted() function creates a new list with the elements arranged in ascending order by default.
  2. Step 2: Compare with other options

    It does not change the original list, nor does it delete items or return just the largest item.
  3. Final Answer:

    Returns a new list with items arranged in order -> Option A
  4. Quick Check:

    sorted() returns new sorted list [OK]
Hint: Remember: sorted() returns a new list, original stays same [OK]
Common Mistakes:
  • Thinking sorted() changes the original list
  • Confusing sorted() with max() or min()
  • Assuming sorted() deletes items
2. Which of the following is the correct syntax to sort a list nums in reverse order using sorted()?
easy
A. sorted(nums, reverse=False)
B. sorted(nums, reverse=0)
C. sorted(nums, reverse=false)
D. sorted(nums, reverse=True)

Solution

  1. Step 1: Check the correct parameter for reverse sorting

    The sorted() function uses the keyword argument reverse=True to sort in descending order.
  2. Step 2: Validate the parameter type

    The value must be the boolean True, not False, numbers like 0, or undefined names.
  3. Final Answer:

    sorted(nums, reverse=True) -> Option D
  4. Quick Check:

    Use reverse=True (boolean) for descending sort [OK]
Hint: Use reverse=True (boolean), not False/0/undefined [OK]
Common Mistakes:
  • Using reverse=False (sorts ascending)
  • Passing falsy numbers like 0
  • Using undefined lowercase 'false'
3. What is the output of the following code?
words = ['pear', 'apple', 'orange']
sorted_words = sorted(words, key=len)
print(sorted_words)
medium
A. ['pear', 'apple', 'orange']
B. ['pear', 'apple', 'orange'] sorted by length
C. ['apple', 'orange', 'pear']
D. ['pear', 'apple', 'orange'] sorted by length ascending

Solution

  1. Step 1: Understand the key parameter

    The key=len tells sorted() to sort the list by the length of each word.
  2. Step 2: Sort words by length

    Lengths: 'pear' (4), 'apple' (5), 'orange' (6). Sorted ascending by length: ['pear', 'apple', 'orange'].
  3. Final Answer:

    ['pear', 'apple', 'orange'] -> Option A
  4. Quick Check:

    sorted(words, key=len) sorts by length ascending [OK]
Hint: key=len sorts items by their length ascending [OK]
Common Mistakes:
  • Confusing sorting by value vs length
  • Assuming sorted() changes original list
  • Misreading the order of output
4. Find the error in this code snippet:
numbers = [3, 1, 4, 1, 5]
sorted_numbers = sorted(numbers, key='abs')
print(sorted_numbers)
medium
A. sorted() cannot sort numbers
B. Missing parentheses after sorted
C. key argument should be a function, not a string
D. reverse argument is required

Solution

  1. Step 1: Check the key argument type

    The key parameter must be a function, like abs, not a string.
  2. Step 2: Identify the error

    Here, key='abs' is a string, which causes a TypeError.
  3. Final Answer:

    key argument should be a function, not a string -> Option C
  4. Quick Check:

    key needs a function, not string [OK]
Hint: Pass function to key, not string name [OK]
Common Mistakes:
  • Passing string instead of function to key
  • Thinking sorted() can't sort numbers
  • Forgetting parentheses in function calls
5. You have a list of tuples representing people and their ages:
people = [('Alice', 30), ('Bob', 25), ('Charlie', 35), ('David', 25)]
How do you use sorted() to sort this list by age ascending, and if ages are equal, by name alphabetically?
hard
A. sorted(people, key=lambda x: (x[0], x[1]))
B. sorted(people, key=lambda x: (x[1], x[0]))
C. sorted(people, key=lambda x: x[1])
D. sorted(people, key=lambda x: x[0])

Solution

  1. Step 1: Understand sorting by multiple criteria

    To sort by age first, then by name if ages tie, use a tuple key with age first, then name.
  2. Step 2: Write the key function

    The lambda lambda x: (x[1], x[0]) returns a tuple (age, name) for sorting.
  3. Step 3: Check other options

    The option sorting by name then age is incorrect. Options sorting by only one field are wrong.
  4. Final Answer:

    sorted(people, key=lambda x: (x[1], x[0])) -> Option B
  5. Quick Check:

    Use tuple key (age, name) for multi-level sort [OK]
Hint: Use tuple in key: (age, name) for multi-level sorting [OK]
Common Mistakes:
  • Sorting by name before age
  • Using single key instead of tuple
  • Confusing tuple order in key function