如何编写一个返回最长单词长度的函数?

时间:2015-03-20 08:59:53

标签: python

如何编写一个函数find_longest_word(astring),它取一个单词列表并返回最长单词的长度。

mystring = "Red Riding Hood"
def string_length(mystring):
    length = 0 
    for letter in mystring:
        length += 1
    print "Red Riding Hood:", letter
    return string_length

6 个答案:

答案 0 :(得分:1)

你可以或多或少地完全按照你所描述的 的方式进行操作:

def find_longest_word(a_string):
    return max(len(word) for word in a_string.split())

print(find_longest_word("Red Riding Hood"))  # --> 6

答案 1 :(得分:0)

您可以使用一些内置函数maplen以及max,但请注意,您需要split字符串来获取单词列表:< / p>

>>> def string_length(mystring):
...     return max(map(len,mystring.split()))
... 
>>> string_length(mystring)
6

答案 2 :(得分:0)

快速的单行将是:

len(sorted(mystring.split(),key=lambda s:len(s))[-1])

这会将mystring拆分为一个列表,按列表项目的长度对其进行排序,并返回该结果列表中最后一项的长度。

答案 3 :(得分:0)

>>> def string_length(mystring):
...     return max([len(item) for item in mystring.split()])
... 
>>> string_length(mystring)
6

答案 4 :(得分:0)

最长的词:

max(ls, key=len)

最长:

max(len(s) for s in ls)

最长的单词和长度:

max(((s, len(s)) for s in ls), key=lambda t: t[1])

答案 5 :(得分:0)

function lognestStringLength($string,$getword=false)
{
     $stringArr = explode(" ",$string);
     $getLen =array_map("strlen",$stringArr);
     $max =max($getLen);
     if($getword):
        $key = array_keys($getLen ,max($getLen));
        return $stringArr[$key[0]];
     else:
        return $max;
    endif;
}