Python のアンパック演算子の活用法
アンパック演算子(* と **)は、引数の受け取りだけでなく、さまざまな場面で活用できます。
リスト・タプルのアンパック
複数のイテラブルを結合したり、要素を展開できます。
a = [1, 2, 3]
b = [4, 5, 6]
combined = [*a, *b]
print(combined) # [1, 2, 3, 4, 5, 6]
辞書のアンパック
辞書を結合する際に ** を使います。
defaults = {"color": "red", "size": "M"}
custom = {"size": "L", "price": 1000}
merged = {**defaults, **custom}
print(merged) # {'color': 'red', 'size': 'L', 'price': 1000}
後から指定した辞書の値で上書きされます。
代入時のアンパック
残りの要素をまとめて受け取れます。
first, *middle, last = [1, 2, 3, 4, 5]
print(first) # 1
print(middle) # [2, 3, 4]
print(last) # 5
先頭や末尾だけ取り出したい場合に便利です。
head, *tail = [1, 2, 3, 4]
print(head) # 1
print(tail) # [2, 3, 4]
*init, last = [1, 2, 3, 4]
print(init) # [1, 2, 3]
print(last) # 4
関数呼び出しでの活用
複数のリストをまとめて渡す場合にも使えます。
def func(a, b, c, d):
print(a, b, c, d)
args1 = [1, 2]
args2 = [3, 4]
func(*args1, *args2) # 1 2 3 4
アンパック演算子を使いこなすと、コードがシンプルになり、データ操作が直感的になります。