Я пытаюсь отсортировать числовые кортежи по двум аргументам:
- первый аргумент, длина кортежа: чем меньше кортеж, тем лучше;
- второй аргумент, n-ое значение кортежа: если два кортежа имеют одинаковую длинузатем их следует упорядочить по первому числовому значению, на которое они отличаются
Например, предположим, у нас есть эти четыре кортежа:
a = (2, 5) # len(a) == 2
b = (2, 5, 3) # len(b) == 3
c = (2, 4, 3) # len(c) == 3
d = (1, 4, 4, 8) # len(d) == 4
В результате я хочу получить функцию, которая поможет мне отсортировать эти кортежи так, чтобы:
- a - первый кортеж (самый маленький)
- b и c следует (средние)
- d - последний кортеж (самый длинный)
- , поскольку b и c оба имеют одинаковую длину, они должны быть упорядочены так, чтобы c предшествовал b, поскольку, хотя их первое значение одинаково, вторые значения c меньше, чем b
Следовательно, четыре кортежа выше должны быть указаны как [a, c, b, d].
Вопрос: как мне это сделать, зная, что кортежи не имеют фиксированной длины и могут различаться при любом значении от первого до последнего?