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

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)]

この方法なら、フラグ変数やネストしたループが不要になり、コードの可読性も向上します。用途に応じて使い分けるとよいでしょう。

  1. 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]負の数値が含まれる場合でも正しく動作することがわかります。重複要素を検出する

  2. 【Python入門】リストから一意の値(重複しない要素)だけを抽出して出力する方法

    リストが与えられたとき、その中から重複を除いた一意の値(ユニークな要素)だけを取り出して表示するのが、この記事の目的です。Pythonを使えば、初心者でも簡単に実装できる定番の処理なので、ぜひマスターしておきましょう。実行例入力:A = [1, 2, 3, 4, 2, 1, 9] 出力:[1, 2, 3, 4, 9]リスト内に同じ値が複数回現れていても、出力されるのはそれぞれ1回だけです。アルゴリズムステップ1:ユーザーからリストを入力として受け取る。 ステップ2:空のリストを作成する。 ステップ3:元のリストの全要素を順番に走査する。 ステップ4:その要素がすでに一意のリストに存在するかどう