Используйте условное выражение внутри list comprehension: переворачивайте строку срезом [::-1], только если её длина больше трёх. Остальные элементы сохраняйте без изменения.
Перевёрнутые строки при длине более трёх символов
Используйте условное выражение внутри list comprehension: переворачивайте строку срезом [::-1], только если её длина больше трёх. Остальные элементы сохраняйте без изменения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо написать функцию, принимающую список строк и возвращающую новый список. В результирующем списке каждая строка должна быть заменена на её обратную запись, если её длина превышает три символа.
def reverse_when_long(strings):
...
Ответ
Используйте условное выражение внутри list comprehension: переворачивайте строку срезом [::-1], только если её длина больше трёх. Остальные элементы сохраняйте без изменения.
Реализация:
def reverse_when_long(strings):
return [text[::-1] if len(text) > 3 else text for text in strings]
Для ['cat', 'python', '', 'abcd'] получится ['cat', 'nohtyp', '', 'dcba']. Создаётся новый внешний список, исходный не меняется. В Python срез разворачивает Unicode code points; составные графемы, например букву с комбинируемым знаком, он может визуально разделить. Для обычных букв примеров этого ограничения нет.