2012-09-21 23 views
11

類似max(len(s1), len(s2))只會返回最大長度。但是,如果我真的想知道哪一個字符串更長,並且可能將它保存到另一個字符串,那麼這是如何完成的? max(s1,s2)似乎返回具有較大值的字符串,但不一定是最長的。如何找到Python中最長的字符串?

注意:這必須完成沒有列表或數組。

回答

38

max需要key函數導致max採取最大key(val)每個val,但仍然返回val,即:基於所述長度

>>> max("foobar", "angstalot") 
'foobar' 
>>> max("foobar", "angstalot", key=len) 
'angstalot' 
0
def longest(a, b): 
    if len(a) > len(b): 
     return a 
    return b 
+0

爲什麼downvote?這是否不回答這個問題? – Joe

+1

它的工作原理,但它不是慣用的,因爲正是這種功能,在一個更普遍和有用的形式,已經存在於內置。 – delnan

+1

也許你應該編輯這個問題來說「這是幹什麼的?」。 – Joe

1

只是一個簡單的條件表達式每個字符串都是需要的:

longest = s1 if len(s1) > len(s2) else s2 
相關問題