Pythonで文字列内の単語の出現回数をカウントする方法
はじめに
このチュートリアルでは、文字列の中に特定の単語が何回出現するかを数えるPythonプログラムの作り方を解説します。文字列と検索対象の単語が与えられ、その単語が文字列内に出現する頻度(回数)を計算します。
例として、文字列 I am a programmer. I am a student. と、単語 am を考えてみましょう。「am」は文字列内に2回出現するため、プログラムは 2 を返します。
それでは、以下の手順に従ってプログラムを作成していきましょう。
アルゴリズム
1. 文字列と単語をそれぞれ変数として初期化する。 2. split()メソッドを使って、文字列を空白で分割し、単語のリストを取得する。 3. カウント用の変数countを0で初期化する。 4. リストを反復処理する。 4.1. リスト内の各単語が指定した単語と一致するかどうかを確認する。 4.1.1. 2つの単語が一致した場合は、countを1増やす。 5. countを出力する。
まずはご自身でコードを書いてみてください。その後、以下のコードと比較してみましょう。
コード例
## 文字列と単語の初期化
string = "I am programmer. I am student."
word = "am"
## 文字列を空白で分割
words = string.split()
## カウント変数を0で初期化
count = 0
## リストを反復処理
for w in words:
## 単語の一致を確認
if w == word:
## 一致した場合はカウントを増やす
count += 1
## カウントを出力
print(count)実行結果
上記のプログラムを実行すると、次の出力が得られます。
2
補足:より簡潔な書き方
実は、Pythonにはもっとシンプルな方法もあります。リストの count() メソッドを使えば、ループを明示的に書くことなく、1行で同じ処理を実現できます。
string = "I am programmer. I am student." word = "am" print(string.split().count(word)) # 出力: 2
split() で生成した単語のリストに対して count() を呼び出すだけで、指定した単語の出現回数を直接取得できます。コードの可読性が高まるため、実際の開発ではこちらの方法が好まれることも多いです。
まとめ
この記事では、split() メソッドとループ処理を組み合わせて、文字列内の特定の単語の出現回数をカウントする方法を学びました。さらに、リストの count() メソッドを使った簡潔な代替手段も紹介しました。プログラムについて不明な点がある場合は、コメント欄でお気軽に質問してください。
-
Pythonで配列の反転数(転倒数)をカウントする方法
はじめに この記事では、配列内の反転(インバージョン)をカウントする問題とその解決策について詳しく解説します。 問題定義 問題: リストが与えられたとき、その中に含まれる反転の数をカウントして表示します。 反転数とは、配列を昇順にソートされた状態にするために必要な入れ替え(スワップ)の回数を表す指標です。具体的には、i < j かつ arr[i] > arr[j] を満たす要素のペア(i, j)の総数として定義されます。 実装例 # 反転数をカウントする関数 def InvCount(arr, n): inv_count = 0 for i in range(n
-
文字列内の単語の出現回数をカウントするPythonプログラムの作成方法
この記事では、ユーザーから入力された文字列の中に、指定した単語が何回出現するかをカウントし、その結果を出力するPythonプログラムを紹介します。文字列操作の基礎を学ぶのに最適な題材です。 実行例 入力:Python is an interpreted high-level programming language for general purpose programming. カウントする単語:programming 出力:2 上記の例では、「programming」という単語が文中に2回出現しているため、出力は「2」となります。 アルゴリズム wordoccurences(n, p