\

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の学習に役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です