最近覚えたこと

>>> [x for x in xrange(5)]
[0, 1, 2, 3, 4]
>>> [x for x in xrange(10) if x % 3 == 0]
[0, 3, 6, 9]

リストの内包表記

  • リストに対してfor文回した結果をリストで返す。
  • ifを使って必要なものを選ぶことも可能。
>>> map(lambda x: pow(x), xrange(5))
[1, 2, 4, 8, 16]
>>> filter(lambda x: x % 3 == 0, xrange(10))
[0, 3, 6, 9]
>>> reduce(lambda x, y: x + y, xrange(10))
45

map/filter/reduce

  • map(f,L)は[f(x) for x in L]と同じ。
  • filter(f,L)は[x for x in L if f(x)]と同じ。
  • reduce(f,L)はA0=L[0]/An=f(A(n-1),An)。

最初っからこれ知ってたらもうちょっと楽だったと思うことがちらほら。
それにしても俺はいつdjangoを始めるんだろうか?