Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

【自習中】List comprehensionなるもの

List comprehension……包括リストとでも訳すべきなんでしょうか?
リストからリストを作るといった内容……のようです。

distinct from the use of map and filter functions.

なんて書かれるように、mapやらフィルタやらを適用するものとは、明確に区別される模様。

たとえば、リストAとリストBを式Cに適用した、その結果のリストDを得る……みたいな感じです。
Livescriptで、これを再現する場合、以下のような構文になります。

[x ** y for x in [100 387] for y in [2 4]]
#>> [ 10000, 100000000, 149769, 22430753361 ]

リストなんていうとLispを思い出しますが、
軽く調べた範囲ではPythonで割と推されてる文化みたいです。
Wikipediaの記述をみると

s = [2 * x for x in range(101) if x ** 2 > 3]

などと、何をやっているかわかるが、そこまでやる必要があるのかって例が出てます