Basic usage
sorted() returns a new sorted list (doesn't modify original):
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # [1, 1, 2, 3, 4, 5, 6, 9]
print(numbers) # [3, 1, 4, 1, 5, 9, 2, 6] (unchanged)
Reverse order
numbers = [3, 1, 4, 1, 5]
# Descending order:
sorted_desc = sorted(numbers, reverse=True)
print(sorted_desc) # [5, 4, 3, 1, 1]
Sort by key
Use key parameter to sort by a function:
# Sort by length:
words = ['apple', 'pie', 'banana', 'a']
sorted_by_length = sorted(words, key=len)
print(sorted_by_length) # ['a', 'pie', 'apple', 'banana']
# Sort by second element:
pairs = [(1, 3), (2, 1), (3, 2)]
sorted_pairs = sorted(pairs, key=lambda x: x[1])
print(sorted_pairs) # [(2, 1), (3, 2), (1, 3)]
Sort strings
text = "hello"
sorted_text = sorted(text)
print(sorted_text) # ['e', 'h', 'l', 'l', 'o']
print(''.join(sorted_text)) # "ehllo"
vs .sort() method
sorted() creates new list; .sort() modifies in place:
numbers = [3, 1, 4]
# sorted() — new list:
new_list = sorted(numbers) # numbers unchanged
# .sort() — modifies original:
numbers.sort() # numbers is now [1, 3, 4]