Как найти самую длинную строку в Python?

Нечто вроде max(len(s1), len(s2)) вернет максимальную длину. Но если я действительно хочу узнать, какая строка больше, и, возможно, сохранить ее в другой строке, как это сделать? max(s1,s2) похоже, возвращает строку с большим значением, но не обязательно самым длинным.

Примечание: это нужно делать без списков или массивов.

Ответ 1

max принимает функцию key, которая заставляет max принимать max key(val) для каждого val, но все же возвращает val, а именно:

>>> max("foobar", "angstalot")
'foobar'
>>> max("foobar", "angstalot", key=len)
'angstalot'

Ответ 2

Простое условное выражение, основанное на длине каждой строки, - это все, что необходимо:

longest = s1 if len(s1) > len(s2) else s2

Ответ 3

def longest(a, b):
   if len(a) > len(b):
       return a
   return b