Ответ 1
max
принимает функцию key
, которая заставляет max
принимать max key(val)
для каждого val
, но все же возвращает val
, а именно:
>>> max("foobar", "angstalot")
'foobar'
>>> max("foobar", "angstalot", key=len)
'angstalot'
Нечто вроде max(len(s1), len(s2))
вернет максимальную длину. Но если я действительно хочу узнать, какая строка больше, и, возможно, сохранить ее в другой строке, как это сделать? max(s1,s2)
похоже, возвращает строку с большим значением, но не обязательно самым длинным.
Примечание: это нужно делать без списков или массивов.
max
принимает функцию key
, которая заставляет max
принимать max key(val)
для каждого val
, но все же возвращает val
, а именно:
>>> max("foobar", "angstalot")
'foobar'
>>> max("foobar", "angstalot", key=len)
'angstalot'
Простое условное выражение, основанное на длине каждой строки, - это все, что необходимо:
longest = s1 if len(s1) > len(s2) else s2
def longest(a, b):
if len(a) > len(b):
return a
return b