こんにちは、機械学習の講師をしている木下です!
ここでは、Python の文法の中でもよく使われるリストの内包表記について初学者向けに解説していきます。
ゼロから始めるプログラミング
スモールステップで Python を基礎から学べる、初学者の方向けの講座です。演習問題を通して Python の使い方を理解し、データ分析や機械学習実装のための基礎を身につけることを目指します。
実行環境
- Google Colaboratory
- Python:3.9.2
リスト内包表記について
リストの内包表記は、よく用いられる if 文・for 文を一行で記載できる画期的な記述方法です。内包表記は繰り返し処理や条件分岐の結果をリストに格納したいときに絶大な力を発揮します。for 文や if 文の中に append などを用いている場合にはぜひ使用を検討してみてください!
ただし、慣れないうちは非常に難しく感じる書き方なので、ここで一緒に押さえて活用できるようにしていきましょう!
if 文・for 文については以下の記事を参考にしてください。
リスト内包表記の使い方
もう一度、for
文の基本的な書き方を記載しておきます。
出典:2.7.1. 繰り返し(for 文)|Chainer Tutorial
for
文の構文繰り返したい処理①
繰り返したい処理②
︙
for 文の内包表記の書き方
ここでは for 文を使ったコードとリスト内包表記のコード、 2 つを比較して、どのような関係性にあるのか把握していきましょう。
サンプルコードは以下の通りです。
double = []
for i in range(5):
double.append(i*2)
print(double)
double = [i*2 for i in range(5)]
print(double)
# 実行結果
[0, 2, 4, 6, 8]
記述方法の違いがわかったでしょうか?簡単にいうと、リスト内包表記の for 文は処理したい式を先頭に書いて、[] で囲うだけなんです!
if 文の内包表記の書き方
次に if 文を使ったコードとリスト内包表記のコード、 2 つを比較して、どのような関係性にあるのか把握していきましょう。
サンプルコードは以下の通りです。
odds = []
for i in range(10):
if i % 2 == 1:
odds.append(i)
print(odds)
odds = [i for i in range(10) if i % 2 == 1]
print(odds)
# 実行結果
[1, 3, 5, 7, 9]
リスト内包表記の if 文は、for 文の内包表記に加えて、if 条件式を末尾に書くだけなんです!
if/else 文の内包表記の書き方
最後に if/else 文を使ったコードとリスト内包表記のコード、 2 つを比較して、どのような関係性にあるのか把握していきましょう。
if/else を含むと煩雑なコードになりやすいので、ここでしっかりと抑えておきましょう。
サンプルコードは以下の通りです。
odd10 = []
for i in range(10):
if i % 2 == 1:
odd10.append(i*10)
else:
odd10.append(i)
print(odd10)
odd10 = []
for i in range(10):
odd10.append(i * 10 if i % 2 == 1 else i)
print(odd10)
odd10 = [i * 10 if i % 2 == 1 else i for i in range(10)]
print(odd10)
# 実行結果
[0, 10, 2, 30, 4, 50, 6, 70, 8, 90]
リスト内包表記の if/else 文は、if 文の内包表記に加えて、else の際の処理を追加するだけなんです!
最後に
以上です。本記事では、Python の文法である リスト内包表記を解説しました。
以下、まとめになります。
- リスト内包表記は、繰り返し処理や条件式を一行にまとめることができる構文
- 結果が一つのリストにまとまって返ってくる
もし、動画で for
文の内容を学習したい!という方は、元副社長の動画がおすすめです。
https://www.youtube.com/watch?v=tOULTwsiSN4
もし忘れてしまったら本記事を思い出して再度復習してみてください。
以上、Python 学習している方々のお力添えになれば幸いです!
(本記事はキカガク長期コース卒業生に協力していただき作成しました)
まずは無料で学びたい方・最速で学びたい方へ
まずは無料で学びたい方: Python&機械学習入門コースがおすすめ
AI・機械学習を学び始めるならまずはここから!経産省の Web サイトでも紹介されているわかりやすいと評判の Python&機械学習入門コースが無料で受けられます!
さらにステップアップした脱ブラックボックスコースや、IT パスポートをはじめとした資格取得を目指すコースもなんと無料です!
最速で学びたい方:キカガクの長期コースがおすすめ
続々と転職・キャリアアップに成功中!受講生ファーストのサポートが人気のポイントです!
AI・機械学習・データサイエンスといえばキカガク!
非常に需要が高まっている最先端スキルを「今のうちに」習得しませんか?
無料説明会を週 2 開催しています。毎月受講生の定員がございますので確認はお早めに!
- 国も企業も育成に力を入れている先端 IT 人材とは
- キカガクの研修実績
- 長期コースでの学び方、できるようになること
- 料金・給付金について
- 質疑応答
参考リンク
ゼロから始めるプログラミング
スモールステップで Python を基礎から学べる、初学者の方向けの講座です。演習問題を通して Python の使い方を理解し、データ分析や機械学習実装のための基礎を身につけることを目指します。