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

Pythonでsetを使って文字列内の母音の数をカウントするプログラム


この記事では、ユーザーが入力した文字列に含まれる母音の数をカウントするPythonプログラムを紹介します。ポイントとなるのはPythonのset(セット)の活用です。setとは、反復可能(iterable)で可変(mutable)、かつ重複する要素を持たないという特徴をもつ、順序なしのコレクションデータ型です。

実行例

入力:str1 = pythonprogram
出力:3

アルゴリズム

ステップ1:まず、文字列内の母音を数えるためのカウンター変数を用意します。
ステップ2:母音のセットを作成します。
ステップ3:与えられた文字列内のすべての文字を順番に走査します。
ステップ4:文字が母音セットに含まれている場合は、カウンターを1つ増やします。
ステップ5:走査が完了したら、カウンター変数の値を出力します。

サンプルコード

# setを使って文字列内の
# 母音をカウントするプログラム

def countvowel(str1):
    c = 0
    # 母音のセットを作成
    s = "aeiouAEIOU"
    v = set(s)
    # 与えられた文字列内の
    # 各文字を走査するループ
    for alpha in str1:
        # 文字が母音セットに
        # 含まれる場合
        if alpha in v:
            c = c + 1
    print("母音の数 ::>", c)

# 実行部分
str1 = input("文字列を入力してください ::>")
countvowel(str1)

出力結果

文字列を入力してください ::>pythonprogram
母音の数 ::> 3

コードの解説

  • 母音セットの作成: "aeiouAEIOU" という文字列をset()に渡すだけで、大文字・小文字の両方の母音を含むセットを一度に生成できます。
  • 高速な存在判定: セットは内部的にハッシュテーブルで実装されているため、「ある文字が母音かどうか」の判定は平均O(1)で行えます。リストを使うよりも効率的です。
  • 計算量: 文字列を先頭から1回だけ走査すればよいため、全体の時間計算量はO(n)(nは文字列の長さ)です。

より簡潔な書き方

sum()とジェネレータ式を組み合わせると、同じ処理をさらに短いコードで表現できます。

def countvowel(str1):
    v = set("aeiouAEIOU")
    return sum(1 for ch in str1 if ch in v)

str1 = input("文字列を入力してください ::>")
print("母音の数 ::>", countvowel(str1))

まとめ

setを利用することで、母音の判定処理をシンプルかつ高速に実装できます。大文字と小文字をひとつのセットでまとめて扱えるのも大きなメリットです。ぜひご自身の環境でさまざまな文字列を入力して試してみてください。

  1. セットを使って文字列内の母音の数をカウントするPythonプログラム

    本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。 問題の概要 問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。 基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。 実装例 def vowel_count(str_): count = 0 # 母音をセットとして定義 vowe

  2. Pythonで文字列内の母音の数を数える方法をわかりやすく解説

    Pythonで文字列内の母音の数を数える基本手順Pythonでは、シンプルなループ処理を使うことで、文字列に含まれる母音(a、e、i、o、u)の数を簡単に数えることができます。ここでは、初心者にもわかりやすいように、基本的な実装手順を順を追って解説します。ステップ1:母音をまとめた文字列を用意するまず、すべての母音を格納した文字列オブジェクトを宣言します。>>> vowels = aeiouステップ2:カウント用の変数を初期化する次に、母音の出現回数を記録するための変数を0で初期化します。>>> count = 0ステップ3:文字列を走査して母音を判定する対