Given a list of words, return a list with the same words in order of
length (longest to shortest), the second sort criteria should be
alphabetical. Hint: you need think of two functions.
This is what I have so far:
def bylength(word1,word2):
return len(word2)-len(word1)
def sortlist(a):
a.sort(cmp=bylength)
return a
it sorts by length but I don’t know how to apply the second criteria to this sort, which is by alphabetical descending.
You can do it in two steps like this:
Python’s sort is stable, which means that sorting the list by length leaves the elements in alphabetical order when the length is equal.
You can also do it like this:
Generally you never need
cmp, it was even removed in Python3.keyis much easier to use.