Сортировка чисел по их длине

Напишите функцию, которая будет принимать список чисел и возвращать список тех же чисел, но в отсортированном виде.

Сортировать числа нужно по их длине. Число, состоящее из одной цифры, будет идти первым, а число с наибольшим количеством цифр — последним.

Если два и больше чисел имеют одинаковое количество цифр, они должны располагаться в том же порядке, в каком стояли в исходном списке.

Примеры

number_len_sort([1, 54, 1, 2, 463, 2]) ➞ [1, 1, 2, 2, 54, 463]

number_len_sort([999, 421, 22, 990, 32]) ➞ [22, 32, 999, 421, 990]

number_len_sort([9, 8, 7, 6, 5, 4, 31, 2, 1, 3]) ➞ [9, 8, 7, 6, 5, 4, 2, 1, 3, 31]

Варианты решений

def number_len_sort(lst):
    return sorted(lst, key=lambda x: len(str(x)))
def number_len_sort(lst):
    return [int(i) for i in sorted([str(i) for i in lst], key=len)]