セットを使って文字列内の母音の数をカウントするPythonプログラム
本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。
問題の概要
問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。
基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。
実装例
def vowel_count(str_):
count = 0
# 母音をセットとして定義
vowels = set("aeiouAEIOU")
for alphabet in str_:
# 文字が母音かどうかを判定
if alphabet in vowels:
count += 1
print("与えられた文字列の母音の数:", count)
# ドライバーコード
str_ = "Tutorialspoint"
vowel_count(str_)
出力結果
与えられた文字列の母音の数: 6
「Tutorialspoint」という文字列には、u・o・i・a・o・i の6つの母音が含まれているため、正しく6が出力されます。
コードのポイント
このプログラムでは、すべての変数はローカルスコープ内で宣言されています。関数 vowel_count() 内で定義された count や vowels は、関数の外部からは参照できません。
また、母音をセット(set)として定義している点が重要です。リストや文字列での線形探索(O(n))と異なり、セットによるメンバーシップ判定は平均O(1)で処理されるため、長い文字列を扱う場合でも高速に動作します。
別の書き方:sum() を使った簡潔な実装
Pythonらしいより簡潔なコードにしたい場合は、ジェネレーター式と sum() を組み合わせる方法もおすすめです。
def vowel_count(str_):
vowels = set("aeiouAEIOU")
count = sum(1 for ch in str_ if ch in vowels)
print("与えられた文字列の母音の数:", count)
str_ = "Tutorialspoint"
vowel_count(str_)
こちらの書き方でも同じ結果が得られます。ループ処理を1行にまとめられるため、可読性の高いコードになります。
まとめ
本記事では、Pythonのセットを使って文字列内の母音の数をカウントする方法を学びました。セットによるメンバーシップ判定を活用することで、シンプルかつ効率的な実装が可能になります。大文字・小文字の対応が必要な場合や、特定の記号を除外したい場合など、条件をカスタマイズしてぜひ自分のコードにも応用してみてください。
-
Pythonで文字列がパングラムかどうかを判定するプログラムの作成方法
本記事では、与えられた文字列がパングラムであるかどうかを判定するPythonプログラムの解法とアプローチについて詳しく解説します。 問題の概要 文字列入力が与えられたとき、その文字列がパングラムであるかどうかを判定するPythonプログラムを作成します。 パングラムとは? パングラムとは、英語のアルファベット26文字すべてを少なくとも1回ずつ含む文章や一連の単語のことです。有名な例として「The quick brown fox jumps over the lazy dog」があります。 解法のアプローチ この問題は、以下の手順で解くことができます。 アルファベット全体を表す基準となる文字列
-
Pythonで文字列内の母音の数を数える方法をわかりやすく解説
Pythonで文字列内の母音の数を数える基本手順Pythonでは、シンプルなループ処理を使うことで、文字列に含まれる母音(a、e、i、o、u)の数を簡単に数えることができます。ここでは、初心者にもわかりやすいように、基本的な実装手順を順を追って解説します。ステップ1:母音をまとめた文字列を用意するまず、すべての母音を格納した文字列オブジェクトを宣言します。>>> vowels = aeiouステップ2:カウント用の変数を初期化する次に、母音の出現回数を記録するための変数を0で初期化します。>>> count = 0ステップ3:文字列を走査して母音を判定する対