如何在python中找到最长的单词?

时间:2015-09-28 23:54:57

标签: python

我是python的新手,我坚持这个练习。我应该输入一个句子并找到最长的单词。如果有两个或多个具有相同最长长度的单词,则返回第一个单词。这就是我到目前为止所做的:

def find_longest_word(word_list):  
    longest_word = ''  
    for word in word_list:    
          print(word, len(word))  


words = input('Please enter a few words')  
word_list = words.split()  
find_longest_word(word_list)  

但我不知道如何比较列表并返回第一个/最长的单词。

3 个答案:

答案 0 :(得分:8)

使用max python内置函数,使用key函数作为len参数。它将迭代word_list应用len函数,然后返回最长的函数。

def find_longest_word(word_list):  
    longest_word =  max(word_list, key=len)
    return longest_word

答案 1 :(得分:1)

你不应该打印出每个单词的长度。相反,请比较当前word的长度和longest_word的长度。如果word更长,则您将longest_word更新为word。当您浏览完所有单词后,最长的世界将存储在longest_word

然后你可以打印或退货。

def find_longest_word(word_list):
    longest_word = ''
    for word in word_list:
        if len(word) > len(longest_word)
            longest_word = word
    print longest_word

编辑: levi的答案更优雅,这是一个简单的for循环的解决方案,并且与你试图制作的那个有点接近。

答案 2 :(得分:0)

将每个单词与最长单词进行比较,从长度0开始。如果单词长度超过最长单词,则更新单词和longest_size。看起来应该类似于:

def find_longest_word(word_list):  
    longest_word = ''  
    longest_size = 0   
for word in word_list:    
    if len(word) > longest_size
        longest_word = word
        longest_size = len(word)      
return longest_word

words = input('Please enter a few words')  
word_list = words.split()  
find_longest_word(word_list)