リストやタプルの各要素を関数の引数として渡す
リスト自体ではなく、リストの要素を一つずつ関数の引数として渡したいとき、
引数の展開「*」を使えば、リストを分解したり添え字をつけたりせず扱うことができます。
(この操作はアンパックとも呼ぶようです。1)
例えば、下にある数列$l$の先頭5つ分の要素を半角スペースで繋いで1行で表示したいときは
次のようにできます。
l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 期待する出力: 0 1 2 3 4
print(l[:5]) # 出力結果: [0, 1, 2, 3, 4]
print(l[0], l[1], l[2], l[3], l[4]) # 出力結果: 0 1 2 3 4
print(' '.join(list(map(str, l[:5])))) # 出力結果: 0 1 2 3 4
# ---
print(*l[:5]) # 出力結果: 0 1 2 3 4
このように、引数のリストやタプルの先頭に「*」を付けることで、
その各要素を各引数として渡せます。
その他
引数の展開「*」は可変長引数「*」と似ていますが、少し違うものです。
ちなみに、辞書型については「**」を付けることで似たようなことができます。2