Python(Python3)ではリストを処理するときにリスト内包表記という記法を使用することが出来ます。リストに何らかの処理をして新しいリストを生成するとき、リスト内包表記は有効です。
リスト内包表記の使い方
基本的な使い方
基本的なリスト内包表記は次のように表記します。
[計算式 for i in 処理するリスト名]
用意されたlistの全ての要素を二倍にする例を次に示します。
list1=range(5) list2=[i*2 for i in list1] print(list2)
実行結果
[2,4,6,8,10]
range(5)は1から5までのlistを生成する構文です。rangeについては「Pythonでのrangeの使い方(Python3)」をご覧ください。それぞれの要素が倍になっているのが分かります。
次に、listの要素を全て0にしてみます。
list1=range(5) list2=[0 for i in list1] print(list2)
実行結果
[0,0,0,0,0]
listの各要素に0を代入しています。
if文を用いた使い方
[計算式 for i in 処理するリスト名 if 条件式]
とすることで、条件式に一致する要素のみ計算式を計算します。
要素が2の倍数である場合のみ、その要素を新しいリストに代入します。
list1=range(5) list2=[i for i in list1 if i%2==0] print(list2)
実行結果
[2,4]
二次元listの作成
計算式の部分にlistを代入することで、listの中にlistを代入することが出来ます。
list1=range(5) list2=[[0,0,0,0,0] for i in list1] print(list2)
実行結果
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
listの中にlistがある二次元listを実現できました。
この記事のまとめ
今回はリスト内包表記の基本的な使い方について解説しました.今回解説したことをまとめます。
- listを操作したいときや二次元listを宣言したいときはリスト内包表記
pythonでリストの内包表記を活用しましょう!