[Python]可変長引数をとる関数にリストの中身を渡す

Pythonの可変長引数は、引数に*をつける。すると、渡した引数はタプル型の変数に格納される。

>>> def foo(*args):
        print args


>>> foo(1, 2, 3, 4)
(1, 2, 3, 4)

>>> foo('a', 'b')
('a', 'b')


で、この関数にリストを渡すと、

>>> foo([2, 4, 6])
([2, 4, 6],)


リスト全体が引数の1つとして扱わる。
リストの中身を展開して渡したい場合、渡すリストに*をつける。

>>> foo(*[2, 4, 6])
(2, 4, 6)



参考:
http://blog.taikomatsu.com/2009/03/13/python-%E5%8F%AF%E5%A4%89%E9%95%B7%E5%BC%95%E6%95%B0%E3%81%82%E3%82%8C%E3%81%93%E3%82%8C/


コメント

このブログの人気の投稿

Spring+WebAppでlog4j

Modern Irish Project レコ発@渋谷 サラヴァ東京