萬九郎の硬い船

プログラミング学習記録など

Pythonの内包表記を書くときにハムラビ法典が邪魔をする

Pythonには内包表記(comprehension)という書き方がある、というのをcodeacademyのPythonコースで知ったわけだが、これはコードが簡潔になるばかりではなく処理も速くなるらしい。処理が速くなる理屈については正直今の自分のレベルではチンプンカンプンなのだが、たとえば

comprehension = [i for i in range(10000)]

みたいに書いてやると、0〜9999までの数字が格納されたリストができる。 また条件を付加することもできて

comprehension_odd = [i for i in range(10000) if i % 2 == 1]

と書くことで、0〜9999までの数字のうち奇数だけが格納されたリストができたりもする。これを普通に書くと

comprehension_odd = []
for i in range(10000):
    if i % 2 == 1:
        comprehension_odd.append(i)

となるので便利なのはわかるのだが、これ、「i for i」と書くときに脳内でハムラビ法典(目には目を/eye for an eye)が邪魔をする。ハムラビ法典というか、正確にはSoulflyの『Eye For An Eye』が脳内に流れ、マックス・カヴァレラがシャウトしはじめる。

Pythonは最近ますますポピュラーになってきている言語だと言うし、世界中のPython学習者の中には自分以外にもSoulflyのファンだった人がいるはずだ。そういった人たちは内包表記を学ぶ際にマックス・カヴァレラのことを思い出したりはしないんだろうか。 ちなみに、自分が熱心にSoulflyを聴いていたのは高校生の頃という青臭い時代だったのだが、もうあれから約20年もたってしまった。マックス・カヴァレラは何歳になっているんだろう。いまはPythonに入門したてホヤホヤの者として、改めて青臭い気持ちでせいぜい学んでいこうと思う。