Bird
Raised Fist0
Pythonprogramming~10 mins

sorted() function in Python - Interactive Code 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 sort the list in ascending order.

Python
numbers = [5, 2, 9, 1]
sorted_numbers = sorted([1])
print(sorted_numbers)
Drag options to blanks, or click blank then click option'
Asorted
Bnumbers
Clist
Drange
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Passing the function name 'sorted' instead of the list variable.
Passing 'list' or 'range' which are not the list to sort.
2fill in blank
medium

Complete the code to sort the list in descending order.

Python
fruits = ['banana', 'apple', 'cherry']
sorted_fruits = sorted(fruits, [1]=True)
print(sorted_fruits)
Drag options to blanks, or click blank then click option'
Aorder
Bkey
Creverse
Ddescending
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using 'key=True' which is incorrect.
Using 'order=True' or 'descending=True' which are not valid parameters.
3fill in blank
hard

Fix the error in the code to sort words by their length.

Python
words = ['cat', 'elephant', 'dog']
sorted_words = sorted(words, key=[1])
print(sorted_words)
Drag options to blanks, or click blank then click option'
Alen
Blength
Csize
Dcount
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using 'length', 'size', or 'count' which are not built-in functions.
4fill in blank
hard

Fill both blanks to create a dictionary of words and their lengths, including only words longer than 3 characters.

Python
word_lengths = {word: [1] for word in words if [2] > 3}
Drag options to blanks, or click blank then click option'
Alen(word)
Bword
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using the word itself instead of its length for the dictionary value.
Checking the word string directly instead of its length in the condition.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase words as keys, their original words as values, including only words longer than 4 characters.

Python
result = [1]: [2] for word in words if [3] > 4
Drag options to blanks, or click blank then click option'
Aword.upper()
Bword
Clen(word)
Dword.lower()
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using word.lower() instead of uppercase for keys.
Using the length of the word as the value instead of the word itself.
Checking the word string directly instead of its length in the condition.

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