Используйте другую функцию клавиш.Вот что будет работать:
sorted(res, key=lambda x: (x[0] == "", x[0].lower()))
Ключ - это кортеж с 0 (False) или 1 (True) в первой позиции, где True указывает, что первый элемент в записи пуст.Вторая позиция имеет поле имени из вашей исходной записи.Затем Python будет сортировать сначала по группам непустых и пустых имен, а затем по имени в пределах непустого имени группы.(Python также будет сортировать по имени в пустой группе имен, но поскольку имя пустое, он ничего не будет делать.)
Я также позволил себе сделать сортировку имен без учета регистра, преобразовав их все встрочные буквы в ключе.
Простая замена пустых имен на "ZZZZZZ" или что-то "в алфавитном порядке" заманчива, но не дает результатов в первый раз, когда какой-то джокер вводит свое имя как "ZZZZZZZZ" для теста.Я думаю, что-то вроде '\xff' * 100
может сработать, но все равно похоже на взлом (также, потенциальные подводные камни Unicode).