1

如何使用 python 从一组单词中找到最长的单词?我可以找到这样的第一个词:

'a aa aaa aa'[:'a aa aaa aa'.find(' ',1,10)]

'a'

rfind is another subset

'a aa aaa aa'[:'a aa aaa aa'.rfind(' ',1,10)]

'a aa aaa'
4

5 回答 5

36

如果我正确理解您的问题:

>>> s = "a aa aaa aa"
>>> max(s.split(), key=len)
'aaa'

split()将字符串拆分为单词(由空格分隔);max()使用内置函数查找最大元素len(),即字符串长度,作为找出“最大”含义的关键。

于 2009-07-28T09:15:30.527 回答
2

这是“你能做到多难”类别中的一个,也违反了不应该涉及自己的课程的要求:

class C(object): pass
o = C()
o.i = 0
ss = 'a aa aaa aa'.split()
([setattr(o,'i',x) for x in range(len(ss)) if len(ss[x]) > len(ss[o.i])], ss[o.i])[1]

有趣的是,您使用对象成员来维护状态,同时在推导中计算列表,最终丢弃列表并仅使用副作用。

但请务必使用上面的max()解决方案之一 :-) 。

于 2009-07-28T09:53:49.200 回答
0

另一种在字符串中查找最长单词的方法:

a="a aa aaa aa"
b=a.split()
c=sorting(b,key=len)
print(c[-1])    
于 2017-01-21T10:44:11.080 回答
0
def largest_word(sentence):
    split_sentence = sentence.split(' ')
    largest_word = ''
    for i in range(len(split_sentence)):
        if len(split_sentence[i]) > len(largest_word):
           largest_word = split_sentence[i]
    print(largest_word)


sentence = "Improve your coding skills with python"

largest_word(sentence)
于 2018-08-14T18:39:06.320 回答
0

我认为这更像是(下面的代码),它输出字符串中最长的单词。但是,在这种情况下,它是“句子”,只需更改 return(len(s)) 即可输出最长单词中有多少个字符,即 8。

def longest_word(text):
    s = max(text.split(), key = len)
    return(s)

if __name__ == "__main__":
    print(longest_word("This is a sentence with words and such."))
于 2021-09-05T00:22:13.197 回答