Напишите ключ, который возвращает уникальное значение в зависимости от типа, а затем само значение. Я предполагаю, что вы хотели бы, чтобы float был также перед строками, поэтому предположим, что вы хотите, чтобы строки были последними, а все остальное - первыми.
def strings_last(x):
"""When sorting, ensure strings are last."""
if isinstance(x, str):
return 1, x
else:
return 0, x
x = ["aa", "5", 5, "12", 12]
sorted(x, key=strings_last)
# [5, 12, "12", "5", "aa"]