October 2025
Intermediate to advanced
572 pages
7h 46m
Japanese
大半のプログラムは、リストや辞書、集合などのデータ構造とその処理からなります。Pythonにはそれらのデータ構造に対する反復処理や派生的なデータを簡潔に生成する特殊な構文である内包表記があります。内包表記にはコードの可読性が大幅に向上するなどの利点が多くあります。
内包表記はジェネレータに拡張されます。ジェネレータはforループや*argsによるアンパックなど、イテレータが使える場所ならばどこでも利用できます。ジェネレータを使えば、コードのパフォーマンス向上、メモリ使用量の削減、可読性の向上、実装の簡略化が実現できます。
Pythonにはシーケンスやイテラブルオブジェクトから新しいリストを生成するコンパクトな構文があります。それはリスト内包表記と呼ばれます。例えば、リストの各要素の二乗を計算したいとします。まず、単純なforループで計算します。
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
squares = []
for x in a:
squares.append(x**2)
print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
リスト内包表記を使えば、計算式とループ対象のイテラブルオブジェクトを指定するだけで、同じ結果を1行で実現できます。
squares = [x**2 for x in a] # リスト内包表記 print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
単一引数を受け取る関数を適用する場合を除いて、リスト内包表記は単純なケースでは組み込み関数 ...
Read now
Unlock full access