Pythonで辞書(Counter)を使って文字列内の最初に繰り返される単語を検索する方法
与えられた文の中には、文が終わる前に同じ単語が繰り返して登場することがあります。この記事では、Pythonを使って文中で最初に繰り返された単語を検出するプログラムを紹介します。
処理の流れ
このプログラムでは、以下の手順で目的の単語を特定します。
- 与えられた文字列をスペース区切りで単語に分割する
collectionsモジュールを使って、分割した単語を辞書形式(カウンタ)に変換する- 単語のリストを先頭から順に走査し、出現頻度が1より大きい最初の単語を見つける
プログラム:繰り返される単語を検索する
以下のプログラムでは、collectionsパッケージに含まれるCounterクラスを使用して、各単語の出現回数をカウントしています。Counterは要素をキー、出現回数を値として持つ辞書のようなオブジェクトを生成するため、頻度のチェックが非常に簡単に行えます。
コード例
from collections import Counter
def Repeat_word(load):
word = load.split(' ')
dict = Counter(word)
for value in word:
if dict[value] > 1:
print(value)
return
if __name__ == "__main__":
input = 'In good time in bad time friends are friends'
Repeat_word(input)
上記のコードを実行すると、次の結果が得られます。
実行結果
time
この例では、入力した英文「In good time in bad time friends are friends」の中で、最初に2回以上登場した単語である「time」が出力されています。ループは単語リストの先頭から順に処理され、条件を満たす単語が見つかった時点でreturnによって処理を終了するため、必ず「最初の」繰り返し単語だけが取得できる仕組みです。
-
PythonとTkinterで作るGUI単語辞書アプリの作成方法
この記事では、PyDictionaryモジュールとTkinterを組み合わせて、GUIベースの辞書アプリケーションを作成する方法を解説します。PyDictionaryは、単語の意味・翻訳・類義語・反義語を取得できる便利なPythonモジュールです。意味の取得にはWordNet、翻訳にはGoogle、類義語・反義語の取得にはsynonym.comを利用しています。また、依存ライブラリとしてBeautifulSoupとRequestsモジュールが必要になります。必要なモジュールのインストールまず、以下のコマンドでPyDictionaryを環境にインストールしましょう。pip install PyD
-
Python 3で辞書を使って文字列をフォーマットする方法
Pythonでは、辞書(dict)を活用して文字列への値の埋め込み(補間)を行うことができます。この構文では、%と変換文字の間の括弧内に、辞書のキー名を指定します。例えば、キーcostに格納された浮動小数点数を$xxxx.xxの形式で表示したい場合は、表示したい位置に$%(cost).2fと記述します。辞書を使った文字列フォーマットの基本例以下は、辞書を使った文字列フォーマットで、文字列と数値を同時に補間・整形する例です。>>> print(%(language)s has %(number)03d quote types. % {language: Python, numb