如何在python中找到最长的单词?
我是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
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循环中,对于每个单词,我们比较当前正在检查的单词的长度,以及到目前为止找到的最长单词(最初为长度为零,空字符串)。如果我们正在检查的当前单词比以前找到的最长单词长,我们会将最长单词设置为单词对单词。这样,所有将来的单词都将与我们刚刚找到的最长单词进行比较。