Python アスタリスク(*)を使用した list や dict 型のアンパック
Pythonでは、listやdict 型のデータを展開して、関数やクラスに実引数を渡すことができます。これをアンパック(unpack)と呼びます。英語でunpackというと”開梱する”などの意味となりますので、要素を取り出すというイメージには適しています。
Pythonでは、listの要素をそれぞれ関数に渡したい場合、次のように書くことができます。
L = ["a", "b", "c"]
print(L[0], L[1], L[2])
# a b c
Python一方で、アスタリスク(*)を使用すると、次のように簡潔に書くことができます。
print(*L)
# a b c
Pythonprint()
関数のような可変長引数を受け取る関数はもちろん、固定長を受け取る関数に対しても使用することができます。
また、dictの要素をそれぞれ関数に渡すことも可能です。
D = {"a": 1, "b": 2, "c": 3}
print(*D)
# a b c
print(*D.value)
# 1 2 3
print(**D)
# a: 1 b: 2 c: 3
Python省略しますがtupleに対しても使用可能です。
以上です。