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

Pythonでリスト内の偶数と奇数をカウントする3つの方法を解説

この記事では、リスト内に含まれる偶数と奇数の個数を数える方法について、具体的なコード例とともに解説します。

問題の概要

課題: 与えられたリストの中から、偶数と奇数がそれぞれいくつ含まれているかをカウントします。

ここでは、以下の3つのアプローチを紹介します。それぞれ特徴が異なるため、用途やコードの可読性に応じて使い分けるのがおすすめです。

方法1:forループを使った基本的な方法(総当たり方式)

最もシンプルで直感的な方法です。拡張forループで各要素を順番に確認し、2で割った余りによって偶数か奇数かを判定します。

コード例

list1 = [21, 3, 4, 6, 33, 2, 3, 1, 3, 76]
even_count, odd_count = 0, 0

# 拡張forループで要素を走査
for num in list1:
    # 偶数の場合
    if num % 2 == 0:
        even_count += 1
    # 奇数の場合
    else:
        odd_count += 1

print("リスト内の偶数の個数:", even_count)
print("リスト内の奇数の個数:", odd_count)

実行結果

リスト内の偶数の個数: 4
リスト内の奇数の個数: 6

方法2:filter()関数とラムダ式を使う方法

関数型プログラミングのスタイルを活かした方法です。filter()とラムダ式を組み合わせることで、条件に合う要素だけを抽出し、その長さから個数を求めます。コードが簡潔になるのが魅力です。

コード例

list1 = [21, 3, 4, 6, 33, 2, 3, 1, 3, 76]

# 奇数を抽出してカウント
odd_count = len(list(filter(lambda x: (x % 2 != 0), list1)))

# 偶数を抽出してカウント
even_count = len(list(filter(lambda x: (x % 2 == 0), list1)))

print("リスト内の偶数の個数:", even_count)
print("リスト内の奇数の個数:", odd_count)

実行結果

リスト内の偶数の個数: 4
リスト内の奇数の個数: 6

方法3:リスト内包表記を使う方法

Pythonらしい書き方として人気のあるリスト内包表記を使う方法です。奇数だけを新しいリストに取り出し、その長さを数えます。偶数の個数は「全体の長さ − 奇数の個数」で計算できる点もポイントです。

コード例

list1 = [21, 3, 4, 6, 33, 2, 3, 1, 3, 76]

# 奇数のみを新しいリストに抽出し、その長さを計算
only_odd = [num for num in list1 if num % 2 == 1]
odd_count = len(only_odd)

print("リスト内の偶数の個数:", len(list1) - odd_count)
print("リスト内の奇数の個数:", odd_count)

実行結果

リスト内の偶数の個数: 4
リスト内の奇数の個数: 6

まとめ

この記事では、Pythonでリスト内の偶数と奇数をカウントする3つの方法を学びました。

  • forループ: 初心者にもわかりやすく、処理の流れが把握しやすい
  • filter()+ラムダ式: 関数型的で簡潔なコードが書ける
  • リスト内包表記: Pythonらしく、読みやすく効率的

どの方法でも同じ結果が得られますので、コードの目的やチームのコーディングスタイルに合わせて最適な手法を選択しましょう。

  1. Pythonで奇数桁と偶数桁の合計の差を判定するプログラム

    この記事では、与えられた問題を解決するための解法とアプローチについて詳しく解説します。 問題文 整数が1つ与えられたとき、奇数桁の合計と偶数桁の合計の差が0であるかどうかを判定する必要があります。 素朴なアプローチ(ブルートフォース) 最も単純な方法は、数値を構成するすべての偶数桁と奇数桁の合計をそれぞれ計算し、その差を求めることです。しかし、この方法では各桁を順番に処理するため、桁数に比例した計算時間が必要になります。 効率的なアプローチ:11の倍数判定を活用 計算時間を削減するために、「暗算の数学」でよく知られている性質を利用します。それは「ある整数の奇数桁の合計と偶数桁の合計の差が0にな

  2. 【Python】約数の個数が偶数か奇数かを判定するプログラムの書き方

    この記事では、ある整数の約数の個数が偶数か奇数かを判定するPythonプログラムについて、その考え方と実装方法をわかりやすく解説します。 問題文 ある数「n」が与えられたとき、その約数の総数が偶数であるか奇数であるかを判定してください。 例えば、n = 10 の場合、約数は 1, 2, 5, 10 の4つなので「偶数」。一方、n = 100 の場合は 1, 2, 4, 5, 10, 20, 25, 50, 100 の9つとなり「奇数」となります。 アプローチ:約数を実際に数える 最も基本的な方法は、すべての約数を見つけ、その個数が偶数か奇数かをチェックすることです。 ここで重要なのは、約数