Python has a built-in function called sorted
, which will give you a sorted list from any iterable you feed it (such as a list ([1,2,3]
); a dict ({1:2,3:4}
, although it will just return a sorted list of the keys; a set ({1,2,3,4
); or a tuple ((1,2,3,4)
)).
>>> x = [3,2,1]
>>> sorted(x)
[1, 2, 3]
>>> x
[3, 2, 1]
Lists also have a sort
method that will perform the sort in-place (x.sort() returns None but changes the x object) .
>>> x = [3,2,1]
>>> x.sort()
>>> x
[1, 2, 3]
Both also take a key
argument, which should be a callable (function/lambda) you can use to change what to sort by.
For example, to get a list of (key,value)
-pairs from a dict which is sorted by value you can use the following code:
>>> x = {3:2,2:1,1:5}
>>> sorted(x.items(), key=lambda kv: kv[1]) # Items returns a list of `(key,value)`-pairs
[(2, 1), (3, 2), (1, 5)]