Sorting has changed between Python 2 and Python 3 ... and it's easy and logical to sort lists in Python 3. Problem is that the Python 3 documentation shows you really complicated examples ...
There are two ways of sorting a list in Python 3:
a) You can use the
sorted function, into which you pass a list; it returns an ordered list.
b) You can use the
sort method on a list, in which case the list is modified in situ.
By default, both sort and sorted re-order elements in their "natural" order, running the
cmp function on the elements of the list being compared. So if you're sorting your own objects, you can redefine
__cmp__ to change that sort order.
In Python 3, just as in Python 2, you can't sort a dict / dictionary. It uses a hashing technique for quick access to elements in a large collection, and such a technique is simply incompatible with sorting (come on
Python Course and I'll explain why!). But you can sort a list of keys.
Here's an example of sorting a list of keys (by the key):
towns = sorted(list(counties.keys()))
for town in towns:
and an alternative sorting by values - passing in a key function to tell it how to sort:
towns = sorted(list(counties.keys()),key=lambda x:counties[x])
for town in towns:
Complete example code
[here]
If you prefer to sort a list in situ, by key:
towns = list(counties.keys())
towns.sort()
for town in towns:
and by value:
towns = list(counties.keys())
towns.sort(key=lambda x:counties[x])
for town in towns:
Complete example code
[here]
If you're using Python 2, you'll find an equivalent piece of code
[here]. It's descibed as being "Python 2.7" because it makes use of the str.format method's enhancements that were added at that release.
(written 2015-04-20, updated 2015-04-22)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y300 - Python 3 - What is new, what's changed and why [753] Python 3000 - the next generation - (2006-06-09)
[1788] Python 2 to Python 3 / Python 3000 / Py3k - (2008-09-07)
[1791] The road ahead - Python 3 - (2008-09-10)
[2277] Python classes / courses - what version do we train on? - (2009-07-10)
[2285] Great new diagrams for our notes ... Python releases - (2009-07-13)
[2559] Moving the product forward - ours, and MySQL, Perl, PHP and Python too - (2010-01-01)
[2778] Learning to program in Python 2 ... and / or in Python 3 - (2010-05-24)
[2871] Moving from Python 2.6 to Python 3 - (2010-07-14)
[4470] Testing in Python 3 - unittest, doctest and __name__ == __main__ too. - (2015-04-21)
[4590] Progress on moving from Python 2 to Python 3 - training for both versions - (2015-12-01)
[4649] Object and Static methods - what is the difference; example in Python 3 - (2016-02-17)
[4650] Why populate object with values as you construct them? - (2016-02-18)
[4711] Convering from Python 2 to Python 3 - an update, and the 2to3 utility - (2016-10-30)
[4712] A reminder of the key issues to consider in moving from Python 2 to Python 3 - (2016-10-30)
Y107 - Python - Dictionaries [103] Can't resist writing about Python - (2004-10-29)
[955] Python collections - mutable and imutable - (2006-11-29)
[1144] Python dictionary for quick look ups - (2007-04-12)
[1145] Using a list of keys and a list of values to make a dictionary in Python - zip - (2007-04-13)
[2368] Python - fresh examples of all the fundamentals - (2009-08-20)
[2915] Looking up a value by key - associative arrays / Hashes / Dictionaries - (2010-08-11)
[2986] Python dictionaries - reaching to new uses - (2010-10-05)
[2994] Python - some common questions answered in code examples - (2010-10-10)
[3464] Passing optional and named parameters to python methods - (2011-10-04)
[3488] Python sets and frozensets - what are they? - (2011-10-20)
[3554] Learning more about our web site - and learning how to learn about yours - (2011-12-17)
[3555] Football league tables - under old and new point system. Python program. - (2011-12-18)
[3662] Finding all the unique lines in a file, using Python or Perl - (2012-03-20)
[3934] Multiple identical keys in a Python dict - yes, you can! - (2012-11-24)
[4027] Collections in Python - list tuple dict and string. - (2013-03-04)
[4029] Exception, Lambda, Generator, Slice, Dict - examples in one Python program - (2013-03-04)
[4409] Setting up and using a dict in Python - simple first example - (2015-01-30)
[4661] Unique word locator - Python dict example - (2016-03-06)
[4668] Sorting a dict in Python - (2016-04-01)
Some other Articles
Fishguard to Melksham - third part of Dublin journeyRosslare to Fishguard - foot passenger on the ferryLeopardstown to Rosslare by trainSorting in Python 3 - and how it differs from Python 2 sortingFour in a Bed - most popular answersNeighbourhood Plan - travel and transport thoughtsMoving from C to C++ - Structured to Object Oriented - a lesson for engineersSockets, time handling and keyboard interrupt handling in CCatching up on a week all in a single post (?)