Данная функция уже сортирует по последнему символу через 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 следует только при соответствующем правиле входного формата.