« C#は新人エンジニアにも扱いやすい言語だ | トップページ | Redmineで開発管理しよう! »

Pythonのリスト内包式

他のプログラミング言語に比べて、Pythonが便利だと思える機能の一つに、「リスト内包式」がある。原語は"list comprehension expressions"だ。

リスト内包式は、あるリストから別のリストを生成する式だ。

例えば、リスト[0, 1, 2, 3, 4]の各要素を2乗した新しいリストを作る場合は、次のように書けば良い。

[x**2 for x in [0, 1, 2, 3, 4]]

ここで、[0, 1, 2, 3, 4]の部分はrange(5)で生成できるので、この式は、

[x**2 for x in range(5)]

と書ける。結果はどちらも、

[0, 1, 4, 9, 16]

だ。

新たなリストを生成するときに、条件をつけることもできる。例えば、リスト[0, 1, 2, 3, 4]の中の偶数だけ取り出して、新たなリストを作る場合は次のように書く。

[x for x in range(5) if x % 2 == 0]

結果は、

[0, 2, 4]

だ。

また、ネストしたforを使うこともできて、

[y for x in range(3) for y in range(3)]

という式も書ける。
これは少し分かり辛いが、

res = []
for x in range(3):
    for y in range(3):
        res.append(y)

と書いたのと同じだ。見比べてみてほしい。

結果は、

[0, 1, 2, 0, 1, 2, 0, 1, 2]

となる。

このようなリスト処理はPythonが得意とする分野だ。
今回のコードは、”Python Pocket Reference 4th Edition”から引用した。

★WOZ★

にほんブログ村 IT技術ブログ 開発言語へ
にほんブログ村
Python: Pocket Reference (Python in Your Pocket) Book Python: Pocket Reference (Python in Your Pocket)

著者:Mark Lutz
販売元:Oreilly & Associates Inc
Amazon.co.jpで詳細を確認する


初めてのPython 第3版 Book 初めてのPython 第3版

著者:Mark Lutz
販売元:オライリージャパン
Amazon.co.jpで詳細を確認する


|

« C#は新人エンジニアにも扱いやすい言語だ | トップページ | Redmineで開発管理しよう! »

Python」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1286769/32597972

この記事へのトラックバック一覧です: Pythonのリスト内包式:

« C#は新人エンジニアにも扱いやすい言語だ | トップページ | Redmineで開発管理しよう! »