def find_longest_word(string):
d = []
a = string.split()
for x in a:
b = (x.count("") - 1)
d.append(b)
f = max(d)
print (x, f)
find_longest_word("hello my name is k")
程序将打印每个单词旁边最长的单词,但我只想打印最长的单词。请帮忙。
答案 0 :(得分:1)
试试这个:
def find_longest_word(string):
a = string.split()
f = -1
longest = None
for x in a:
if len(x) > f:
f = len(x)
longest = x
print (longest, f)
>>> find_longest_word("hello my name is k")
('hello', 5)
答案 1 :(得分:1)
这是一个简短的函数,用于查找句子中最长的单词:
def find_longest_word(s):
return max([(len(w), w) for w in s.split(" ")])[1]
示例:
find_longest_word("This is an incredibly long sentence!")
>>> incredibly
<强>解释强>:
这将创建一个包含列表推导和s.split(" ")
的元组列表,然后将单词的长度和单词本身存储在元组中。然后在元组列表上调用max函数,它检索具有最长字长的元组(即第0个元组参数),然后它只返回带有{的第一个元组(即第一个元组参数) {1}}。
注意:如果您想返回单词的长度和单词本身,您可以简单地将函数修改为:...)[1]
。这将删除索引到元组并返回完整的元组。
答案 2 :(得分:1)
一个班轮:
def longest(s):
return sorted(s.split(), key=len, reverse=True)[0]
print longest("this is a string")
答案 3 :(得分:0)
x.count("")
返回""
在字符串中显示的次数。让我们说字符串是&#34; mystring&#34;。 "m"
不是""
,"y"
不是""
,"s"
不是""
等等。总数:0。字符串的长度,使用len(x)
。另外,您f
等于d
中的最高数字,而不是b
。这是一个修改版本:
def find_longest_word(string):
a = string.split()
longest = max(((word, len(word)) for word in a), key=lambda x: x[1])
print longest
测试:
find_longest_word("This is my sentence that has a longest word.")
输出:
('sentence', 8)
如果您希望将其打印为sentence: 8
,请使用print '{}: {}'.format(longest)