Python 如何在此处正确使用append?我按照指示正确吗?
编写一个函数find_longest_wordlist,它接受一个单词列表并返回列表中最长的单词。如果有多个最长的单词,即长度相同的单词,那么它应该返回其中的第一个单词,即列表中出现在其他单词之前的单词 编写一个程序,要求用户在一行中输入一些用空格分隔的单词。然后,您的程序应该用输入的单词创建一个列表。您可以使用内置的字符串拆分方法,并使用上述函数输出列表和最长的单词 样本运行: 输入几个单词,我会找到最长的: 敏捷的棕色狐狸跳过了懒狗 输入的单词列表为: ['The','quick','brown','fox','jumps','over','The','lazy','dog'] 列表中最长的单词是: 快的 我的代码Python 如何在此处正确使用append?我按照指示正确吗?,python,Python,编写一个函数find_longest_wordlist,它接受一个单词列表并返回列表中最长的单词。如果有多个最长的单词,即长度相同的单词,那么它应该返回其中的第一个单词,即列表中出现在其他单词之前的单词 编写一个程序,要求用户在一行中输入一些用空格分隔的单词。然后,您的程序应该用输入的单词创建一个列表。您可以使用内置的字符串拆分方法,并使用上述函数输出列表和最长的单词 样本运行: 输入几个单词,我会找到最长的: 敏捷的棕色狐狸跳过了懒狗 输入的单词列表为: ['The','quick','bro
def find_longest_word():
lizt=[]
s = input("Please type a sentence and I will out put the longest word. ")
for word in s:
lizt.append(word)
x = max(s.split(), key=len)
print('')
print('The list of words entered is:')
print(lizt)
print(s.split())
print('')
print('The longest word is:')
print(x)
find_longest_word()
这个循环是错误的。s是一个字符串,s中的单词将遍历s中的每个字母,而不是其中每个空格分隔的单词。您只需要使用.split,您的变量lizt是不必要的
你可以做:
但这只会导致lizt与s.split相同。所以lizt=s.split会更简单
如果您真的想使用循环来实现此目的,可以尝试放弃使用max,而是执行以下操作:
max_word, max_len = None, 0
for word in s.split():
if len(word) > max_len:
max_word, max_len = word, len(word)
但是,如果只使用split和max,而不必自己编写显式循环,则会更简单、更具Python风格。在s:中使用for word将导致Python遍历用户输入的字符串的每个字符。您应该使用lizt=s.split,它将自动生成一个str列表,这些str最初在输入中用一个空格分隔。这就是你想要的
请注意,您可以使用诸如s.split'\t'之类的参数使用不同的分隔符分割单词。例如:
sentence = "Split function"
sentence.split() # -> ["Split", "function"]
sentence.split("i") # -> ["Spl","t funct","on"]
关于append的用法,您似乎理解如何将项目追加到列表中,太棒了。我认为,这段代码可以满足您的需要。字符串上的split方法创建单词列表。然后返回max函数,使用len函数作为键,可以得到列表中最长的单词。也就是说,它通过对每个应用len并返回最长值来查找列表中的最大值
s = "Please type a sentence and I will out put the longest word"
s_list = s.split()
def longest_word(s_list)
return max(s_list, key=len)
我不明白你的问题是什么?您得到了正确的输出吗?请注意,如果您没有得到预期的输出,您应该给出输出并显示您想要更改的内容。这使我们更容易帮助你。出于某种原因,我觉得我应该用一个循环来做这件事!谢谢你的意见。。有没有一种方法可以作为循环正确地执行此操作?@TYPKRFT请参阅我的编辑。可能海报使用的是Python 3,因此使用输入代替原始输入。谢谢,我编辑了此内容。
sentence = "Split function"
sentence.split() # -> ["Split", "function"]
sentence.split("i") # -> ["Spl","t funct","on"]
s = "Please type a sentence and I will out put the longest word"
s_list = s.split()
def longest_word(s_list)
return max(s_list, key=len)