max(len(s1), len(s2))
のようなものは最大の長さしか返しません。しかし、実際にどの文字列が長いかを調べ、別の文字列に保存したいのであれば、どうしたらいいですか? max(s1,s2)
は、より大きな値を持つ文字列を返すように見えますが、必ずしも最長である必要はありません。Pythonで最も長い文字列を見つけるにはどうすればいいですか?
注:これはリストや配列なしで行う必要があります。
max(len(s1), len(s2))
のようなものは最大の長さしか返しません。しかし、実際にどの文字列が長いかを調べ、別の文字列に保存したいのであれば、どうしたらいいですか? max(s1,s2)
は、より大きな値を持つ文字列を返すように見えますが、必ずしも最長である必要はありません。Pythonで最も長い文字列を見つけるにはどうすればいいですか?
注:これはリストや配列なしで行う必要があります。
max
は、各val
のための最大key(val)
を取るためにmax
を引き起こしkey
関数を受け取り、それでもウィットに、val
を返す:
>>> max("foobar", "angstalot")
'foobar'
>>> max("foobar", "angstalot", key=len)
'angstalot'
def longest(a, b):
if len(a) > len(b):
return a
return b
の長さに基づいて、単純な条件式各文字列は必要なすべてです:
longest = s1 if len(s1) > len(s2) else s2
なぜdownvoteですか?これは質問に答えませんか? – Joe
これは機能しますが、より一般的で有用な形式の機能が組み込み関数の間に既に存在するため、慣用ではありません。 – delnan
質問を編集して「これを行うには本当に1つの方法は?」と言わなければなりません。 – Joe