はじめに
Pythonには、リスト内包表記(List Comprehension)という便利な構文があります。
これを使うことで、リストの生成や条件を満たす要素の抽出を簡潔に記述できます。
今回、リスト内包表記を使って1から20までの偶数を抽出するコードを実装し、その流れや仕組みを解説します。
書こうと思ったきっかけ
プログラムを書く際、リストのフィルタリング処理をforループとif文の組み合わせで記述することがよくあります。
しかし、Pythonではリスト内包表記を使うことで、簡潔かつ可読性の高いコードを書くことができるため、習得する価値があります。
実際に書いて動作を確認しながら、リスト内包表記の便利さを実感したかったので、このコードを書きました。
完成したコード
test.py
numbers = list(range(1, 21))
even_numbers = [n for n in numbers if n % 2 == 0]
print(even_numbers)
コードの流れ
- 1から20までの数値を含むリストを作成
- リスト内包表記を使い、偶数のみを抽出
- 抽出した偶数リストを出力
実際に実行してみる
まず、以下のコマンドを実行して作成したコードの動作を確認します。
python test.py
実行結果
➜ Desktop git:(main) ✗ python test.py
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
コードの解説
1.1から20までの数値をリストとして作成
numbers = list(range(1, 21))
-
range(1, 21)
を使用し、1から20までの連続した整数を生成。 -
list()
でrange
オブジェクトをリストに変換。 - これにより
numbers
には[1, 2, 3, ..., 20]
が格納される。
2.偶数を抽出するリスト内包表記
even_numbers = [n for n in numbers if n % 2 == 0]
-
for n in numbers
でnumbers
の各要素n
を順番に取得。 -
if n % 2 == 0
で偶数のみを抽出(n
を2で割った余りが0のもの)。 - 結果として、
even_numbers
には[2, 4, 6, ..., 20]
が格納される。
3.抽出した偶数リストを出力
print(even_numbers)
-
even_numbers
の内容を出力し、リスト内包表記によって偶数のみが抽出されたことを確認。
まとめ
ここまで読んでいただきありがとうございました。リスト内包表記を使うことで、リストの作成とフィルタリング処理をシンプルに記述できることがわかりました。
今後もこのような基礎的な部分については丁寧にまとめていこうと思っています。