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