Python Tutorials

Overview

Python list items can be sorted using the sort() method in specified orders including reverse order.

Sort List Alphanumerically

Sort the list alphabetically:

my_list = ["Lamborghini", "Ferrari", "Maserati", "Alfa Romeo"]

my_list.sort()
print(my_list) #['Alfa Romeo', 'Ferrari', 'Lamborghini', 'Maserati']

Sort the list numerically:

my_list = [100, 8, 77, 4, -5]

my_list.sort()
print(my_list) #[-5, 4, 8, 77, 100]

Case Sensitive vs. Insensitive Sort

By default the sort() method is case sensitive, resulting in all capital letters being sorted before lower case letters.

my_list = ["Lamborghini", "ferrari", "Maserati", "Alfa Romeo"]

my_list.sort()
print(my_list) #['Alfa Romeo', 'Lamborghini', 'Maserati', 'ferrari']

If you want a case-insensitive sort function, use str.lower as a key function.

my_list = ["Lamborghini", "ferrari", "Maserati", "Alfa Romeo"]

my_list.sort(key = str.lower)
print(my_list) #['Alfa Romeo', 'ferrari', 'Lamborghini', 'Maserati']

Sort Descending

To sort descending, use the keyword argument reverse = True.

my_list = ["Lamborghini", "Ferrari", "Maserati", "Alfa Romeo"]

my_list.sort(reverse = True)
print(my_list) #['Maserati', 'Lamborghini', 'Ferrari', 'Alfa Romeo']

Reverse Order

If you want to reverse the order of a list, regardless of the alphabet, the reverse() method reverses the current sorting order of the elements.

my_list = ["Lamborghini", "Ferrari", "Maserati", "Alfa Romeo"]

my_list.reverse()
print(my_list) #['Alfa Romeo', 'Maserati', 'Ferrari', 'Lamborghini']

Customizing the Sort Function

You can also customize your sort function by using the keyword argument key = function, which will return a number that will be used to sort the list lowest to highest.

def myfunc(n):
    return abs(n - 20)

my_list = [100, 70, 45, 28, 45]
my_list.sort(key = myfunc)

print(my_list) #[28, 45, 45, 70, 100]

Python Notes:

  • The most recent major version of Python is Python 3; however, Python 2 is still in use and quite popular, although not being updated with anything other than security updates
  • Python uses new lines to complete a command, as opposed to other programming languages which often use semicolons or parentheses
  • Python relies on indentation, using whitespace to define scope, such as the scope of loops, functions, and classes; other programming languages often use curly-brackets for this purpose
  • Python string methods return new values, and DO NOT change the original string
  • Python tuples are unchangeable after created (their items CANNOT be changed or re-ordered at a later point)
  • Python sets are unordered (may appear in random orders when called), unchangeable (the value of individual items cannot be changed after creation), and unindexed (items cannot be referred to by index or key)

We’d like to acknowledge that we learned a great deal of our coding from W3Schools and TutorialsPoint, borrowing heavily from their teaching process and excellent code examples. We highly recommend both sites to deepen your experience, and further your coding journey. We’re just hitting the basics here at 1SMARTchicken.