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

Pythonでシーケンス内の2番目に多く繰り返される単語を検索する方法

文字列(単語のシーケンス)が与えられたとき、その中から2番目に多く繰り返される単語を見つけるのが本記事の目的です。Pythonでは Counter(iterator) を使うことで、単語をキー、出現回数を値とする辞書を簡単に作成できます。

アルゴリズム

処理の流れは以下のステップになります。

Step 1: ユーザー定義のリストを作成する。
Step 2: リストを辞書(Counterオブジェクト)に変換する。
Step 3: 辞書の値(出現回数)を取得し、降順にソートする。
Step 4: ソート後の2番目の要素が「2番目に多い出現回数」となる。
Step 5: 辞書全体を再度走査し、値が2番目の出現回数と一致するキーを表示する。

サンプルコード

# Pythonでシーケンス内の2番目に多く繰り返される単語を出力する
from collections import Counter

def second_repeatation(A):
    # リストを辞書(Counter)に変換
    con = Counter(A)
    # 出現回数を降順にソート
    res = sorted(con.values(), reverse=True)
    # 2番目に大きい値を取得
    maxi = res[1]
    # 該当するキーを検索して表示
    for (key, val) in con.items():
        if val == maxi:
            print("Second most repeated word ::>", key)
            return

# ドライバープログラム
if __name__ == "__main__":
    A = list()  # ユーザー定義リストを作成
    n = int(input("Enter the size of the List ::"))
    print("Enter the word ::")
    for i in range(int(n)):
        k = input("")
        A.append(k)
    second_repeatation(A)  # 関数を呼び出す

実行結果

Enter the size of the List ::4
Enter the word ::
aa
bb
aa
cc
Second most repeated word ::> bb

処理の解説

この例では、入力された単語は aabbaacc の4つです。Counter によって各単語の出現回数は次のようになります。

  • aa: 2回(最も多い)
  • bb: 1回(2番目に多い)
  • cc: 1回(2番目に多い)

降順ソート後の値は [2, 1, 1] となり、2番目の要素である 1 が「2番目に多い出現回数」です。辞書を走査すると、最初に値が 1 と一致するキーとして bb が見つかるため、これが出力されます。

なお、同率の単語が複数存在する場合、このコードでは辞書の挿入順に最初に見つかった1つだけを表示して処理を終了します。すべての候補を表示したい場合は、return を外して条件に合うキーをすべて出力するように変更してください。

  1. Androidでシーケンス内の2番目に多く繰り返される文字列を検索する方法

    このチュートリアルでは、Androidアプリで文字列の配列(シーケンス)の中から、2番目に多く繰り返される文字列を検索し、画面に表示する方法を解説します。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。 ステップ2:activity_main.xmlにコードを追加する res/layout/activity_main.xml に以下のコードを記述します。 <?xml version="1.0" encodin

  2. Pythonでリストを出力する方法|インデックスの基本から実践的な出力テクニックまで

    Pythonのリストとは? Pythonのリスト(list)は、複数の要素をひとつにまとめて管理できるデータ型です。リスト内の各要素は順序を持って格納されており、それぞれの位置(インデックス)を指定することで、任意の要素にアクセスできます。 インデックスは0から始まる リストのインデックスは0から始まる点に注意が必要です。つまり、最初の要素が list[0]、2番目の要素が list[1]、3番目の要素が list[2] に対応します。 例えば、以下のようなリストを考えてみましょう。 numbers = [10, 20, 50, 40] print(numbers[2]) # 出力結果:5