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

如何在python中找到最长的单词?,python,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

我是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)  

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

使用
max
python内置函数,使用
key
参数
len
函数。它将迭代
word\u list
应用
len
函数,然后返回最长的函数

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

你不应该打印出每个单词的长度。相反,比较当前
单词的长度
最长单词的长度
。如果
word
较长,则将
longest\u word
更新为
word
。当您阅读完所有单词后,最长的世界将存储在
longest\u 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循环的解决方案,有点接近您尝试自己制作的单词。

将每个单词与最长的单词进行比较,从0开始。如果单词比最长的单词长,请更新单词和最长的\u大小。应该与此类似:

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)  

非常感谢。我的老师不是最好的(他只是说读这篇文章,把它弄明白)。您能解释一下为什么有最长的_word=''和if语句吗?(包括最长的单词)@pythonparadise我可以试试:)。最长的单词在整个执行过程中保存当前最长的单词。启动时,它被设置为“”这是一个空字符串。(注意,使用的是2x',而不是1x)。然后在for循环中,对于每个单词,我们比较当前正在检查的单词的长度,以及到目前为止找到的最长单词(最初为长度为零,空字符串)。如果我们正在检查的当前单词比以前找到的最长单词长,我们会将最长单词设置为单词对单词。这样,所有将来的单词都将与我们刚刚找到的最长单词进行比较。