静かなる名辞

pythonとプログラミングのこと


itertools

【python】itertools.chainを使って複数のiterableを一つにまとめる

概要 複数のiterable(リストとか)を結合させてループさせたいときがあります。 >>> lst1 = [1, 2, 3] >>> lst2 = [4, 5, 6] >>> # 1, 2, 3, 4, 5, 6というループをやりたい 連結すればできたりしますが、余計なメモリを確保するのでスマートではないし、パ…

【python】mapで複数の引数を渡したいときはstarmapが便利

pythonにはmapという関数があります。関数型プログラミングに役立ち、大変便利な関数です。 しかし、これはデフォルトでは一つの引数を前提としています。 >>> list(map(lambda a,b: a+b, zip([1,2,3],[4,5,6]))) Traceback (most recent call last): File "<stdin></stdin>…

【python】順列・組み合わせを計算する方法

Pythonで、順列(Permutation)と組み合わせ(Combination)がほしくなるときがある。また、順列・組み合わせの数がほしくなることもある。順列・組み合わせそのものはitertoolsで、その数はscipyで出せる。計算方法についてまとめておく。