Pythonのsetを使って文字列内の母音の数をカウントする方法
この記事では、ユーザーが入力した文字列に含まれる母音の数をカウントするPythonプログラムを紹介します。母音の判定にはset(セット)を使用します。
setとは、順序を持たないコレクション型のデータ構造です。反復処理が可能で、要素の追加や削除による変更もできますが、重複した要素は保持されません。さらに、setは内部的にハッシュテーブルで実装されているため、特定の要素が含まれているかどうかの判定(in演算子)を高速に行えるという大きな特徴があります。
実行例
入力 : str1 = pythonprogram 出力 : 3
アルゴリズム
ステップ1: 母音を数えるためのカウンター変数を用意します。 ステップ2: 母音のsetを作成します。 ステップ3: 入力された文字列の各文字を先頭から順に走査します。 ステップ4: その文字が母音のsetに存在すれば、カウンターを1つ増やします。 ステップ5: 走査が完了したら、カウンター変数の値を出力します。
サンプルコード
# setを使って文字列内の母音を数えるプログラム
def countvowel(str1):
c = 0
# 母音のsetを作成(大文字・小文字両方に対応)
s = "aeiouAEIOU"
v = set(s)
# 文字列内の各文字を走査するループ
for alpha in str1:
# 文字が母音のsetに含まれているかチェック
if alpha in v:
c = c + 1
print("母音の数 ::>", c)
# メイン処理
str1 = input("文字列を入力してください ::>")
countvowel(str1)
実行結果
文字列を入力してください ::> pythonprogram 母音の数 ::> 3
コードのポイント
このプログラムでは、母音として「aeiouAEIOU」の10文字(大文字・小文字)をあらかじめsetに登録しています。そのため、入力文字列に大文字の母音(AやEなど)が含まれていても、正しくカウントすることができます。
また、setに対するin演算子による存在確認は平均的にO(1)の計算量で実行できるため、リストを使う場合(O(n))と比較して、長い文字列を処理する際にも高速に動作します。母音の判定のように同じ集合に対して何度も存在確認を行う場面では、setの活用が非常に効果的です。
-
セットを使って文字列内の母音の数をカウントするPythonプログラム
本記事では、Pythonを使って文字列内に含まれる母音の数をカウントする方法について解説します。セット(set)を活用した効率的な実装を中心に、初心者の方にもわかりやすく説明していきます。 問題の概要 問題文:任意の文字列が与えられたとき、その文字列に含まれる母音の数をセットを使って数えます。 基本的なアプローチとしては、文字列全体を先頭から順に走査し、各文字が母音であるかどうかを判定します。母音であればカウントを1ずつ増やしていき、最終的な合計を出力します。 実装例 def vowel_count(str_): count = 0 # 母音をセットとして定義 vowe
-
Pythonで文字列がパングラムかどうかを判定するプログラムの作成方法
本記事では、与えられた文字列がパングラムであるかどうかを判定するPythonプログラムの解法とアプローチについて詳しく解説します。 問題の概要 文字列入力が与えられたとき、その文字列がパングラムであるかどうかを判定するPythonプログラムを作成します。 パングラムとは? パングラムとは、英語のアルファベット26文字すべてを少なくとも1回ずつ含む文章や一連の単語のことです。有名な例として「The quick brown fox jumps over the lazy dog」があります。 解法のアプローチ この問題は、以下の手順で解くことができます。 アルファベット全体を表す基準となる文字列