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

Pythonでリストから偶数だけを抽出する方法(forループ・whileループ・filter()の使い方)

データ分析では、特定の条件を満たす値だけをリストから抽出(フィルタリング)する処理が必要になることがよくあります。本記事では、Pythonを使ってリストから偶数の値のみを取り出す方法を、複数のアプローチごとにわかりやすく解説します。

基本的な考え方はシンプルです。リストの各要素を順番に取り出し、2で割った余りを確認します。余りが0であればその要素は偶数と判断できます。こうして判定した偶数だけを集めて新しいリストを作成すれば、それがフィルタリング条件を適用した結果となります。

それでは、代表的な3つの実装方法を見ていきましょう。

1. forループを使う方法

最もシンプルで直感的なのが、forループを使う方法です。リストの要素を1つずつ読み込み、2で割り切れるかどうかを判定します。条件を満たした要素だけを、あらかじめ用意した空のリストに追加していきます。

コード例

list_A = [33, 35, 36, 39, 40, 42]

res = []

for n in list_A:
   if n % 2 == 0:
      res.append(n)
print(res)

実行結果

[36, 40, 42]

元のリストの中から偶数である 364042 のみが抽出され、新しいリストとして出力されます。

2. whileループを使う方法

リストの長さが事前にわからない場合や、インデックスを明示的に制御したい場合は、whileループと len() 関数を組み合わせることで、同じ処理を実現できます。

コード例

list_A = [33, 35, 36, 39, 40, 42]

res = []
n = 0

while (n < len(list_A)):
    if list_A[n] % 2 == 0:
        res.append(list_A[n])
    n += 1
print(res)

実行結果

[36, 40, 42]

変数 n をインデックスとして使い、リストの末尾に到達するまで各要素の偶奇を判定しています。結果はforループの場合と同じになります。

3. filter() 関数とlambdaを使う方法

よりPythonらしい書き方としては、lambda 式と filter() 関数を組み合わせる方法があります。lambda式で「2で割り切れる」という条件を定義し、その条件を filter() に渡すことで、元のリストから条件を満たす要素だけを効率的に取り出せます。

コード例

list_A = [33, 35, 36, 39, 40, 42]

x = lambda m: m % 2 == 0
res = list(filter(x, list_A))

print(res)

実行結果

[36, 40, 42]

filter() はイテレータを返すため、list() で囲んでリスト化している点に注意してください。

まとめ

リストから偶数を抽出する方法として、以下の3つを紹介しました。

  • forループ: 処理の流れが理解しやすく、初心者におすすめ
  • whileループ: インデックス操作が必要な場面や、長さが不定のデータに有効
  • filter() + lambda: コードが簡潔になり、Pythonらしい宣言的な書き方

どの方法でも同じ結果が得られますが、可読性やコード量を重視するなら filter() との組み合わせ、学習目的や柔軟な処理をしたい場合にはループ構文が適しています。状況に応じて使い分けるとよいでしょう。

  1. キーと値のリストからPython辞書(dict)を作成する方法

    キーリストと値リストから辞書を作成する Pythonでは、キーを格納したリスト(L1)と、それに対応する値を格納したリスト(L2)が別々に用意されている場合でも、いくつかの簡単な方法で1つの辞書オブジェクトにまとめることができます。 ここでは、代表的な2つの方法を紹介します。 方法1:zip()関数とdict()関数を組み合わせる 最もシンプルで一般的なのが、zip()で2つのリストをペア化し、dict()関数で辞書に変換する方法です。 >>> L1 = [a,b,c,d] >>> L2 = [1,2,3,4] >>> d = dict(

  2. Pythonの辞書(ディクショナリ)からすべての値をリストとして取得する方法

    Pythonの辞書に格納されたすべての値をリスト形式で取得したい場合、最もシンプルな方法は dict.values() メソッドを使うことです。このメソッドは辞書内のすべての値を返すため、list() 関数で囲むことで簡単にリストへ変換できます。values() メソッドを使った基本的な例my_dict = {name: TutorialsPoint, time: 15 years, location: India} value_list = list(my_dict.values()) print(value_list)出力結果上記のコードを実行すると、次のような出力が得られます。[Tuto