演算子 ** を Python でアンパック

Manav Narula 2023年6月21日
  1. Python で ** 演算子を使用する
  2. まとめ
演算子 ** を Python でアンパック

Python は、辞書、タプル、リストなどのデータ構造から値をアンパックするために使用できる ** および * 演算子を提供します。

解凍すると、オブジェクトの要素を出力したり、他のオブジェクトにロードしたりできます。 ** 演算子を使用して、ディクショナリから値をキーと値のペアとしてアンパックできます。

このチュートリアルでは、Python で ** 演算子を使用する方法を示します。

Python で ** 演算子を使用する

** を使用して辞書からキーと値のペアをアンパックできます。このアンパック手法により、さまざまな操作を実行できます。 以下では、そのような多くの操作について説明します。

これを辞書のマージに使用できます。 辞書を作成し、この辞書のペアを別の辞書にアンパックできます。

これにより、2つの辞書がマージされます。 以下のコードを参照してください。

dict1 = {"x": 24, "y": 25}
dict2 = {"z": 26, **dict1}
print(dict2)

出力:

{'z': 26, 'x': 24, 'y': 25}

上記の例では、辞書 dict1 を作成し、dict2 辞書のペアをマージする辞書 dict2** 演算子を使用してペアをアンパックします。

** 演算子の最も重要な使用法は、関数に複数の引数を送信する場合です。 関数定義での kwargs キーワードの使用を見たことがあるはずです。

関数定義でこれを使用します。これは、関数呼び出し中に関数の合計パラメーターがわからない場合の標準表記と見なされます。

関数定義で **kwargs 表記を使用して、複数のパラメーターを関数に送信できます。

キーワード kwargs は標準表記と見なされ、任意の論理変数名に置き換えることができることに注意してください。 ここで重要なのは ** 演算子です。

この演算子は、関数呼び出し中に複数のキーワード パラメーターが提供されたときに受け取ったパラメーターをアンパックします。 これは、辞書からキーと値のペアとして値をアンパックし、すべてのパラメーターにキーワードがあるため、キーワード パラメーターで機能することに注意してください。

例を用いれば明らかであろう。 以下のコードを参照してください。

def sample(a, **kwargs):
    print("Keyword Parameters using **")
    for i in kwargs:
        print(i, kwargs[i])

    print("Positional Parameter value", a)


sample(7, x=24, y=25, z=26)

出力:

Keyword Parameters using **
x 24
y 25
z 26
Positional Parameter value 7

上記の例では、複数のキーワード パラメータを関数に送信しています。 これらは ** 演算子を使用して関数呼び出しでアンパックされ、必要に応じて使用されます。

Python の * 演算子を使用して、リスト、タプルなどから値をアンパックすることもできます。 説明したのと同様に、関数呼び出し中に複数の位置パラメーターを送信するために使用できます。

まとめ

このチュートリアルでは、Python での ** 演算子の使用について説明しました。 Python でディクショナリから値をアンパックするために使用する方法を示しました。

この機能により、辞書のマージ、複数のキーワード パラメータの送信など、さまざまな操作で使用できます。 また、リスト、タプルなどから値をアンパックできる * 演算子についても同様に説明しました。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python Operator