Pythonでリストから母音で始まる単語を抽出する方法を解説
リストから母音(a・i・u・e・o)で始まる単語を抽出したい場合、シンプルな繰り返し処理とフラグ変数、そして文字列の startswith メソッドを組み合わせることで実現できます。
以下に具体的な実装例を示します。
サンプルコード
my_list = ["abc", "phy", "and", "okay", "educate", "learn", "code"]
print("リストの内容:")
print(my_list)
my_result = []
my_vowel = "aeiou"
print("母音の一覧:")
print(my_vowel)
for index in my_list:
my_flag = False
for element in my_vowel:
if index.startswith(element):
my_flag = True
break
if my_flag:
my_result.append(index)
print("抽出結果:")
print(my_result)
実行結果
リストの内容: ['abc', 'phy', 'and', 'okay', 'educate', 'learn', 'code'] 母音の一覧: aeiou 抽出結果: ['abc', 'and', 'okay', 'educate']
処理の流れの解説
まず、対象となる文字列のリストを定義し、コンソールに表示します。
抽出結果を格納するための空のリストを作成します。
母音をまとめた文字列「aeiou」を定義し、こちらもコンソールに表示します。
リストの各要素に対して繰り返し処理を行い、判定用のフラグ変数を Boolean 型の
Falseで初期化します。各文字列が母音のいずれかで始まるかどうかを
startswithメソッドで確認し、該当すればフラグをTrueに設定します。一致が見つかった時点で内側のループを抜け出し、無駄な比較を避けて処理を効率化しています。
フラグが
Trueの場合のみ、その要素を結果用のリストに追加します。最終的に、母音で始まる単語だけが格納されたリストがコンソールに出力されます。
より簡潔な書き方(補足)
上記のコードは、リスト内包表記と any 関数を使うことで、より短く記述することも可能です。
my_result = [word for word in my_list if any(word.startswith(v) for v in my_vowel)]
この方法なら、フラグ変数やネストしたループが不要になり、コードの可読性も向上します。用途に応じて使い分けるとよいでしょう。
-
Pythonでリストから重複する要素を抽出して表示する方法
この記事では、数値のリストの中から重複している要素(2回以上出現する、リスト内で一意ではない要素)をすべて抽出して表示するPythonプログラムを解説します。実行例入力: given_list = [3, 6, 9, 12, 3, 30, 15, 9, 45, 36, 12] 出力: desired_output = [3, 9, 12] 入力: given_list = [-27, 4, 29, -27, -2, -99, 123, 499, -99] 出力: desired_output = [-27, -99]負の数値が含まれる場合でも正しく動作することがわかります。重複要素を検出する
-
【Python入門】リストから一意の値(重複しない要素)だけを抽出して出力する方法
リストが与えられたとき、その中から重複を除いた一意の値(ユニークな要素)だけを取り出して表示するのが、この記事の目的です。Pythonを使えば、初心者でも簡単に実装できる定番の処理なので、ぜひマスターしておきましょう。実行例入力:A = [1, 2, 3, 4, 2, 1, 9] 出力:[1, 2, 3, 4, 9]リスト内に同じ値が複数回現れていても、出力されるのはそれぞれ1回だけです。アルゴリズムステップ1:ユーザーからリストを入力として受け取る。 ステップ2:空のリストを作成する。 ステップ3:元のリストの全要素を順番に走査する。 ステップ4:その要素がすでに一意のリストに存在するかどう