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'
あなたの質問を正しく理解している場合:
>>> s = "a aa aaa aa"
>>> max(s.split(), key=len)
'aaa'
split()
文字列を単語に分割します (空白で区切られます)。max()
「最大」が何を意味するかを調べるためのキーとして、組み込みlen()
関数、つまり文字列の長さを使用して最大の要素を見つけます。
これは、「どのくらい難しくできるか」というカテゴリの 1 つです。これも、独自のクラスが含まれてはならないという要件に違反しています。
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()ソリューションのいずれかを使用してください:-) 。