I have written a program which must sort the following:
unsorted_list=[['le', 5], ['aab', 4], ['aaa', 5]]
to:
[['aaa', 5], ['le', 5], ['aab', 4]]
It should be sorted by number. If the numbers are the same then it should sort alphabetical.
I have the following code:
def sortItem(lista):
''' func for sort by item'''
return lista[1]
sorted(unsorted_list, key=sortItem, reverse=True)
Unfortunately, it does not return string alphabetical.
Any suggestion how to do it?
Since
x[1]is an integer, you can sort it from maximum to minimum simply by negating it:The tuples created in
keywill be sorted according to the first element (-x[1]), then by second element (x[0]). This corresponds exactly to your logic:“So, it means than it is sorted by number but if numbers are the same the sort will be alphabetical.”