2012年9月4日火曜日

python で関数に大量の引数をまとめて与える。

たとえば、 struct.pack で 200個の長さのlist をバイナリにしたいとする。
でも、 struct.pack は

    struct.pack(format, p1, p2, ...)

なので、単純には p1, ..., p200 の引数を書かないといけない。つまり
    values = range(100)
    packed = struct.pack("<" + "L" * 100, values[0], values[1], ..., values[199])

でもこれはあまりにしんどい。そんなときは, * を使えば展開可能
    packed = struct.pack("<" + "L" * 100, *(values))


0 件のコメント:

コメントを投稿