Упорядочивание списка слов по их конечному символу

Данная функция уже сортирует по последнему символу через sorted(..., key=lambda w: w[-1]). Нужно определить поведение для пустых строк: исходная версия на них вызовет IndexError.

Короткий ответ

Что ответить на собеседовании

Данная функция уже сортирует по последнему символу через sorted(..., key=lambda w: w[-1]). Нужно определить поведение для пустых строк: исходная версия на них вызовет IndexError.

Подробный разбор

Ответ с пояснениями

Условие

Перепишите функцию sort_words так, чтобы она принимала список строк words и возвращала новый список, отсортированный по последнему символу каждого слова. Для сортировки следует воспользоваться встроенной функцией sorted и аргументом key.

def sort_words(words: list[str]) -> list[str]:
    return sorted(words, key=lambda w: w[-1])

raw_input = input().split(',')
print(sort_words(raw_input))

Ответ

Данная функция уже сортирует по последнему символу через sorted(..., key=lambda w: w[-1]). Нужно определить поведение для пустых строк: исходная версия на них вызовет IndexError.

Вариант, помещающий пустые строки первыми:

def sort_words(words: list[str]) -> list[str]:
    return sorted(words, key=lambda word: word[-1:] )

Срез [-1:] безопасен для пустой строки и возвращает ''. sorted создаёт новый список, не меняя words, а при равных ключах сохраняет исходный относительный порядок. После input().split(',') могут появиться пробелы и пустые элементы: удалять их через strip/filter следует только при соответствующем правиле входного формата.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее