I have a list where each element is of the form [list of integers, integer]
.
For example, an element of the list may look like this [[1,3,1,2], -1]
.
I want to sort a list containing the described type of elements by the following criteria:
if the integer lists of two elements (i.e.
element[0]
) are of different length, the element with the smaller integer list is the smaller one.else if the integer lists are of the same length, the smaller element is that which has the smaller integer for the first integer which differs in the integer list of both elements. For example:
[[1,1,99,100], -1] < [[1,1,100,1], -1], because 99 < 100.
else if the integer lists are identical, the smaller element is the one with the smaller integer in
element[1]
.
How would I write an approriate key function I could pass to sorted() or sort()?