PythonでOrderedSetを用いてユーザーから入力された単語のリストを順序を保ちつつ重複を排除する

スポンサーリンク

PythonでOrderedSetを用いてユーザーから入力された単語のリストを順序を保ちつつ重複を排除してみます。

今回はOrderedSetを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.10.9」を使用しています。(Windows11)(pythonランチャーでの確認)

■OrderedSetを用いてインスタンスを作成し要素を反復処理する

では、早速OrderedSetを用いてインスタンスを作成し要素を反復処理するスクリプトを書いていきます。

■コード

from ordered_set import OrderedSet

def main():
    words = OrderedSet()

    while True:
        word = input("単語を入力してください (終了するには 'exit' を入力): ")
        if word == 'exit':
            break
        words.add(word)

    print("入力されたユニークな単語のリスト:")
    for word in words:
        print(word)

if __name__ == "__main__":
    main()

まずはOrderedSetクラスをordered_set モジュールからインポートします。次にmain関数を定義します。この関数はプログラムのエントリーポイントとなります。OrderedSet オブジェクト words を作成します。これはユーザーが入力した単語を保持するためのデータ構造です。while ループを使ってユーザーからの単語入力を受け付けます。ユーザーが ‘exit’ を入力するまで続きます。ユーザーからの入力を input 関数を使って受け取り、変数 word に格納します。もし word が ‘exit’ と等しい場合、ループを終了します。

そして、それ以外の場合、word を words に追加します。OrderedSet はユニークな値を保持するため、重複する単語は自動的に排除されます。ループが終了したら、ユニークな単語のリストを表示します。for ループを使って、words 内のユニークな単語を順に表示します。main関数はこのような処理になります。

最後に、__name__ が “__main__” と等しいかどうかをチェックし、main 関数を呼び出します。これにより、プログラムが実行される際に main 関数が実行されるようになります。

■実行・検証

このスクリプトを「o_word.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、OrderedSetを用いたことで、順序を保ちながらユニークな要素を保持され、重複する単語は自動的に排除。最後に「exit」と入力し、ユニークな単語のリストを表示させることができました。

コメント

タイトルとURLをコピーしました