Pythonでは、リストやタプル、辞書を展開(アンパック)して引数として渡すことができます。リストやタプルには * (アスタリスク1つ)、辞書には ** (アスタリスク2つ)を頭につけて引数にします。
リストのアンパック
Pythonではアスタリスク * を使ってリストの内容を別個に取り出して、関数に渡すことができます。例えば、次の内容のリスト L があるとします。
L = [1, 3, 5]
リストの内容 (要素) をひとつひとつ関数に渡したい場合はどうしたらよいでしょうか。ひとつ目の方法としては、インデックスで要素を取り出して、それをひとつひとつ関数に渡すことです。
print(L[0], L[1], L[2]) # 1 3 5
もうひとつの方法は、リストにアスタリスク * を付けて関数に渡す方法があります。
print(*L) # 1 3 5
このように、リストの要素をひとつひとつ取り出して関数に渡す操作を、アンパック (unpack) という言い方をします。
関数の引数にアンパックした値を渡す
リストの要素を関数の引数として渡すことも可能です。以下に例を示します。
def foo(i, j, k):
print(f"i = {i}, j= {j}, k= {k}")
L = ['Hello', 'World', 'Python']
foo(*L) # i = Hello, j= World, k= Python
上記の例では、リスト内の要素の順番で、引数 i, j, k に値がセットされていることが確認できます。
以上、Pythonでリストをアンパックする方法について説明しました。この記事がPythonの学習に役立つことを願っています。