Python リスト内包表記とは



リストの内包表記。
名前は知っていたのですが、使い方がいまいち・・・

要は、下記のようにリストを宣言して生成するのではなく、
l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
リストの中に式を書いて、動的に生成してしまうことです。

例えば
#0から9までのリストを作成
l = [i for i in xrange(10)]
print l
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


リストを生成する際、後半の
for i in xrange(10)

が実行され、先頭に書いたiに値が代入されます。
生成されたiでリストの中身が埋められます。


また、評価式を書くこともできます。

#0から9までで、偶数のリストを作成
l = [i for i in xrange(10) if i % 2 == 0]
print l
#[0, 2, 4, 6, 8]


真ん中に書いた
for i in xrange(10)

が実行され、生成されたiを最後に書いた評価式で判定
Trueになる場合は、先頭に書いたiに代入されます。

まあ、上記の例は普通こう書くが、サンプルということで

#0から9までで、偶数のリストを作成
l = [i for i in xrange(0,10,2)]
print l
#[0, 2, 4, 6, 8]



Pythonでありながら、コロンやインテンドが無いので
不思議な感じがしますが、使いこなせれば便利な
機能ですね。



もどる