Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字列の最後の単語の長さを求める方法

文字列の中で最後の単語の長さを求めたい場合、まず文字列から余分な空白を取り除き、先頭から1文字ずつ走査するメソッドを定義します。走査を進めながら単語の長さを数え、最終的に最後の単語の長さを結果として返します。

サンプルコード

以下に具体的な実装例を示します。

def last_word_length(my_string):
   init_val = 0

   processed_str = my_string.strip()

   for i in range(len(processed_str)):
      if processed_str[i] == " ":
         init_val = 0
      else:
         init_val += 1
   return init_val

my_input = "Hi how are you Will"
print("The string is :")
print(my_input)
print("The length of the last word is :")
print(last_word_length(my_input))

出力結果

The string is :
Hi how are you Will
The length of the last word is :
4

コードの解説

  • 「last_word_length」という名前のメソッドを定義し、引数として文字列を受け取ります。

  • カウンターとなる変数を0で初期化します。

  • strip()メソッドで文字列の前後にある余分な空白を除去したうえで、文字列全体を1文字ずつ走査します。

  • 走査中に空白文字に遭遇したらカウンターを0にリセットし、それ以外の文字であれば1ずつ加算していきます。これにより、走査が完了した時点でカウンターには最後の単語の長さが格納されます。

  • メソッドの外側で対象となる文字列を定義し、コンソールに表示します。

  • 定義した文字列を引数としてメソッドを呼び出します。

  • 計算結果がコンソールに出力されます。

別のアプローチ:split()を活用する方法

より簡潔に記述したい場合は、split()メソッドを使う方法もおすすめです。split()は引数を指定しない場合、連続する空白を自動的に取り除いた単語のリストを返すため、リストの最後の要素の長さを取得するだけで目的を達成できます。

def last_word_length(my_string):
   words = my_string.split()
   return len(words[-1]) if words else 0

print(last_word_length("Hi how are you Will"))  # 出力: 4

この方法なら、空白が複数含まれる文字列や前後に余分な空白がある文字列でも、追加の前処理なしに正しく最後の単語の長さを取得できます。状況に応じて、走査方式とsplit()方式を使い分けるとよいでしょう。

  1. Python文字列の最大長はどれくらい?メモリと環境による上限を解説

    Python文字列の最大長は環境によって決まるPythonにおける文字列の最大長は、理論上の上限よりも、実際に利用できるメモリ容量とPythonの実行環境(32ビットか64ビットか)によって決まります。言語仕様上、文字列の長さは Py_ssize_t 型で管理されており、64ビット環境では最大約9.2×1018(263-1)文字まで扱えることになっています。しかし、現実的にはこの上限に達する前にメモリが足りなくなります。64ビット環境の場合64ビット版のPythonを搭載し、64GBのメモリを備えたマシンであれば、約63GB程度の巨大な文字列でも十分に扱うことが可能です。さらにメモリを増設すれ

  2. 【初心者向け】Pythonで文字列の長さを取得する方法をわかりやすく解説

    Pythonで文字列の長さを取得する基本:len()関数Pythonには、文字列やリスト、タプルといった複合オブジェクトの長さ(要素数)を取得できる組み込み関数 len() が用意されています。文字列の長さを知りたい場合は、対象の文字列をそのまま len() の引数として渡すだけでOKです。print(len(abcdefghijklmnopqrstuvwxyz))出力結果:26変数に格納した文字列の長さを取得する実際の開発では、変数に代入した文字列の長さを調べる場面が多いでしょう。次のように、変数を len() に渡すだけで簡単に取得できます。text = Hello, Python! pr