Функция будет выглядеть следующим образом:
reduce(lambda x, y: x if len(x) > len(y) else y, name_list)
from functools import reduce
name_list = ["Вася", "Ольга", "Вячеслав", "Екатерина", "Саша"]
longest_name = reduce(lambda x, y: x if len(x) > len(y) else y, name_list)
Результат работы я закрепил.
Итак, первой строчкой мы импортируем саму функцию, в Python 3 reduce более не является встроенной функцией.
Вторая строка - список имён для примера.
Наконец, третьей строкой мы используем reduce и лямбда-выражение. Reduce принимает функцию и последовательность, он чем-то похож на map, только функция принимает по два значения из списка, в итоге первое из них - аккумулированное, т. е. результат выполнения предыдущего запуска лямбда-функции.
Проще говоря, мы последовательно проверяем длину (len) каждой строки со следующей, возвращая бОльшее значение. После чего уже идёт проверка бОльшего со следующим элементом. Результат - самая длинная строка.
И да, функция reduce в Python 3 уже не является актуальной. Более того - не рекомендуется к использованию.