Pythonでは、関数の呼び出しの際にリストやタプル、辞書を展開(アンパック)して引数として渡すことができます。リストやタプルには * (アスタリスク1つ)、辞書には ** (アスタリスク2つ)を頭につけて引数にします。
リスト・タプルの展開(アンパック)
リスト(配列)やタプルの頭に * をつけて引数として渡すと、それぞれの要素が展開されて個別の引数として関数内で使用することができます。
# リスト・タプルを展開する
def my_sum(num1, num2):
print(f"num1: {num1}")
print(f"num2: {num2}")
return num1 + num2
nums = [5, 10] # リストを展開して引数にする
ans = my_sum(*nums) # num1: 5, num2: 10
print(ans) # 15
辞書の展開(アンパック)
辞書の頭に ** をつけて引数として渡すと、それぞれの要素のキーを引数名、値を引数の値として展開して個別の引数として関数内で使用することができます。
# 辞書を展開する
def my_sum(num1, num2):
print(f"num1: {num1}")
print(f"num2: {num2}")
return num1 + num2
nums = {'num1': 5, 'num2': 10} # 辞書を展開して引数にする
ans = my_sum(**nums) # num1: 5, num2: 10
print(ans) # 15
以上のように、Pythonではリスト、タプル、辞書を展開して関数に引数として渡すことが可能です。これにより、データ構造を柔軟に扱うことができます。