ユーニックス総合研究所

  • home
  • archives
  • python-gusu

Pythonで偶数を扱う【判定、格納、抽出】

  • 作成日: 2023-07-06
  • 更新日: 2023-12-24
  • カテゴリ: Python

Pythonで偶数を扱う

この記事ではPythonで偶数を扱う方法を解説します。
具体的には

  • 偶数判定
  • 偶数格納
  • 偶数抽出

の処理について見ていきます。

関連記事
Djangoでオブジェクトを一括作成・更新【bulk_create, bulk_update】
DjangoのModel.objects.filter()の使い方【QuerySet】
Djangoのmodelのcreate()の使い方【Python】
Django入門: ルートの設定 ~ 簡単な一行掲示板アプリを作る その4【Windows10】
NumPyのappend()の使い方: 配列の末尾に要素を追加
Numpyのarangeの使い方: 指定範囲の数列を生成する
Python3でYoutube Data APIを使ってキーワード検索する
PythonからC言語(my.puts)を呼び出して実行する

偶数判定

ある値が偶数かどうか判定するには%演算子を使います。
%演算子は割り算の余りを算出する演算子です。

たとえば

print(10 % 2)  # 0  

上記の10 % 2の演算の結果は0になります。
これは102で割った余りが0だからです。

たとえば

print(11 % 2)  # 1  

11 % 2の演算の結果は1になります。
これは112で割った余りが1になるからです。

ある値が偶数かどうか判定する場合は先ほどのように対象の値を2%演算します。
そしてその結果が0であれば2で割り切れる数であるため偶数と見なすことができます。

if 10 % 2 == 0:  
    print('偶数です')  

逆に2で割った余りが1であるならその値は奇数になります。

if 11 % 2 == 1:  
    print('奇数です')  

リストに偶数だけ格納する

数列のリストを生成する場合に偶数だけ入ったリストを生成したいケースがあるとします。
そういう場合は以下のようなコードを書けば可能です。

lis = [n for n in range(10) if n % 2 == 0]  
print(lis)  
# [0, 2, 4, 6, 8]  

上記のコードで使っているのリスト内包表記です。
内包表記については以下の記事でも詳しく解説しています。

関連記事
Pythonのリスト内包表記まとめ

普通にrange()が生成する値を使ってリストを生成する場合は

[n for n in range(10)]  

という内包表記を使いますが、これにif文で偶数の判定を入れると

[n for n in range(10) if n % 2 == 0]  

という感じになります。
このif n % 2 == 0という条件を加えるとリストを生成する際に偶数のnだけを格納するようになります。

リストから偶数のみ抽出する

特定の値が入ったリストから偶数のみを抽出したいとします。
そういう場合はfilter関数などを使うとラクです。

lis = [1, 2, 5, 6, 9, 13, 14]  
lis = filter(lambda n: n % 2 == 0, lis)  
lis = list(lis)  
print(lis)  
# [2, 6, 14]  

filter関数については以下の記事でも詳しく解説しています。

関連記事
Pythonのfilterの使い方: 関数で配列をフィルタリング

filter()の第1引数にフィルターの条件に使う関数を指定します。
ここではlambda n: n % 2 == 0というラムダ式を与えています。
このラムダ式はnが偶数かどうかチェックする式です。
この式でもってfilter()するとリストから偶数のみを抽出できます。

filter()は返り値としてfilterオブジェクトを返しますのでこれをlist()などに渡すと結果をリストにできます。

おわりに

今回はPythonで偶数を扱う方法を解説しました。
なにか参考になれば幸いです。

🦝 < 偶数か奇数か

🦝 < モジュラー演算