top of page

Python Sorted(): What happens when sorting different types of elements

Writer's picture: Harini MallawaarachchiHarini Mallawaarachchi

In this post, we will learn about the Python sorted() method and how it works for different variable types with the help of examples.


The sorted() function sorts the elements of a given iterable in a specific order (ascending or descending) and returns it as a list.


Example 1: Sort list, string and tuple

# vowels list
py_list = ['e', 'a', 'u', 'o', 'i']
print(sorted(py_list))
# Output: ['a', 'e', 'i', 'o', 'u']
# vowels tuple
py_tuple = ('e', 'a', 'u', 'o', 'i')
print(sorted(py_tuple))
# Output: ['a', 'e', 'i', 'o', 'u']
# vowels tuple
py_tuple = ('e', 'a', 'u', 'o', 'i')
print(sorted(py_tuple))
# Output: ['a', 'e', 'i', 'o', 'u']

Example 2: Sort in descending order

# set
py_set = {'e', 'a', 'u', 'o', 'i'}
print(sorted(py_set, reverse=True))
# ['u', 'o', 'i', 'e', 'a']

# dictionary
py_dict = {'e': 1, 'a': 2, 'u': 3, 'o': 4, 'i': 5}
print(sorted(py_dict, reverse=True))
# ['u', 'o', 'i', 'e', 'a']

# frozen set
frozen_set = frozenset(('e', 'a', 'u', 'o', 'i'))
print(sorted(frozen_set, reverse=True))
# ['u', 'o', 'i', 'e', 'a']

Example 3: Sort the list using sorted() having a key function

# take the second element for sort

def take_second(elem):
    return elem[1]

# random list
random = [(2, 2), (3, 4), (4, 1), (1, 3)]

# sort list with key
sorted_list = sorted(random, key=take_second)

# print list
print('Sorted list:', sorted_list)

#Output: Sorted list: [(4, 1), (2, 2), (1, 3), (3, 4)]

Example 4: Sorting with multiple keys

# Nested list of student's info in a Science Olympiad# List elements: (Student's Name, Marks out of 100, Age)

participant_list = [
    ('Alison', 50, 18),
    ('Terence', 75, 12),
    ('David', 75, 20),
    ('Jimmy', 90, 22),
    ('John', 45, 12)
]
def sorter(item):# Since highest marks first, least error = most marks
    error = 100 - item[1]
    age = item[2]
    return (error, age)


sorted_list = sorted(participant_list, key=sorter)
print(sorted_list)


[('Jimmy', 90, 22), ('Terence', 75, 12), ('David', 75, 20), ('Alison', 50, 18), ('John', 45, 12)]
4 views0 comments

Recent Posts

See All

A Comprehensive Guide to Slicing in Python

Python offers a powerful slicing mechanism that allows you to extract and manipulate portions of strings, lists, and other sequence-like...

Comments


bottom of page