Pythonにおける変数の前の「*」の意味と使用法


  1. アンパック(Unpacking): 「*」を使用して、リストやタプルなどのイテラブルオブジェクトをアンパックすることができます。例えば、以下のようなコードを見てみましょう。
numbers = [1, 2, 3, 4, 5]
a, *b, c = numbers
print(a)  # 出力: 1
print(b)  # 出力: [2, 3, 4]
print(c)  # 出力: 5

この例では、リストnumbersの要素を変数abcにアンパックしています。変数aにはリストの最初の要素である1が代入され、変数cには最後の要素である5が代入されます。また、変数bには「*」を使ってアンパックされた残りの要素がリストとして代入されます。

  1. 可変長引数(Variable-length Arguments): 関数の引数に「*」を使用することで、可変長の引数を受け取ることができます。これは、関数が任意の数の引数を受け取れる柔軟性を提供します。以下は例です。
def sum_values(*args):
    total = 0
    for num in args:
        total += num
    return total
result = sum_values(1, 2, 3, 4, 5)
print(result)  # 出力: 15

この例では、関数sum_valuesは可変長の引数argsを受け取り、与えられた数値の合計を計算しています。関数を呼び出す際には、任意の数の引数を渡すことができます。

  1. 引数のアンパック(Argument Unpacking): 関数を呼び出す際に、「*」を使用してリストやタプルを引数としてアンパックすることができます。以下は例です。
def multiply(a, b, c):
    return a * b * c
numbers = [2, 3, 4]
result = multiply(*numbers)
print(result)  # 出力: 24

この例では、リストnumbersを関数multiplyの引数としてアンパックしています。リストの要素が順番に関数の引数abcに代入され、掛け算の結果が返されます。

これらは、「」を使用する一部の一般的な方法ですが、Pythonでは他にもさまざまな用途で「」を使用することができます。詳細については、公式ドキュメントや関連するチュートリアルを参照することをおすすめします。