我是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)
但我不知道如何比较列表并返回第一个/最长的单词。
答案 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)