12

类似的东西max(len(s1), len(s2))只会返回最大长度。但是如果我真的想找出哪个字符串更长,或者将它保存到另一个字符串,那是怎么做的呢?max(s1,s2)似乎返回具有较大值的字符串,但不一定是最长的。

注意:这必须在没有列表或数组的情况下完成。

4

3 回答 3

40

max接受一个key函数,该函数导致为 eachmax获取最大值,但仍返回, 以机智:key(val)valval

>>> max("foobar", "angstalot")
'foobar'
>>> max("foobar", "angstalot", key=len)
'angstalot'
于 2012-09-21T21:47:16.633 回答
1

只需一个基于每个字符串长度的简单条件表达式即可:

longest = s1 if len(s1) > len(s2) else s2
于 2012-09-21T21:58:26.187 回答
0
def longest(a, b):
   if len(a) > len(b):
       return a
   return b
于 2012-09-21T21:47:29.143 回答