Python

Sorting

Function sorted()

works on any iterable - strings, tuples, dictionaries (you'll get the keys), generators, etc. Returns a new list.

Order a simple list of numbers or strings:

my_numbers = [6, 1, 3]
my_ordered_numbers = sorted(my_numbers) 
my_reversely_ordered_numbers = sorted(my_numbers, reverse=True)

Order a list of dicts by dict key:

from operator import itemgetter

new_list = sorted(my_list, key=itemgetter('key_to_sort_by')) 
new_list = sorted(my_list, key=itemgetter('key_1', 'key_2'))  # sort by multiple keys
# or use lambda
new_list = sorted(my_list, key=lambda d: d['key_to_sort_by'])
new_list = sorted(my_list, key=lambda d: (d['key_1'], d['key_2']))  # sort by multiple keys

If you need additional magic to be done with the dict values during sorting which is to complex for a lambda:

def do_magic(d):
    my_complex_result = d["some_key"].lower()  # lambda would do too for this, just for showcasing 
    return my_complex_result

my_ordered_list = sorted(my_list, key=do_magic)  # orders list by return values of do_magic

Method sort()

Works the same way as sorted() but only on lists. Changes the existing list. Usable on a string but it will return an ordered list of individual characters.

a.sort(key=lambda d : d['key_to_sort_by'])

Note: print(a.sort()) won't print anything as the sort method returns None. Print the list after applying sort.