**を使用した辞書のアンパック
メニューを表示するにはスワイプしてください
Pythonで辞書を扱う際、**演算子はその内容を展開するための簡潔かつ強力な方法を提供します。**によるアンパッキングを利用すると、辞書の要素を関数の名前付き引数として渡したり、複数の辞書をまとめて結合したりすることができます。このテクニックは、さまざまな名前付きパラメータのセットに対応できる柔軟で再利用可能なコードを書く際に特に有用です。
**演算子は、辞書を受け取り、そのキーと値のペアを個別のキーワード引数として展開します。これは、キーワード引数を受け付ける関数を呼び出す際によく使われ、各引数を個別に指定する代わりに辞書を直接渡すことができます。もう一つの実用的な用途は、2つ以上の辞書を新しい1つの辞書に結合する場合で、すべてのキーと値のペアが1つの辞書にまとめられます。
12345def print_person(name, age): print(f"Name: {name}, Age: {age}") person_info = {"name": "Alice", "age": 28} print_person(**person_info)
このコードは、**演算子を使った辞書のアンパッキングを示しています。関数呼び出し時に辞書の前に**を付けると、Pythonはそのキーと値のペアを個別のキーワード引数として「展開」します。この例では、print_person(**person_info)はprint_person(name="Alice", age=28)と機能的に同じです。正しく動作させるためには、辞書のキーが関数定義のパラメータ名と正確に一致している必要があります。
12345defaults = {"color": "blue", "size": "medium"} overrides = {"size": "large", "style": "bold"} merged = {**defaults, **overrides} print(merged)
ここでは辞書のマージを示しています。新しい辞書リテラル内で ** を使用すると、Python は defaults と overrides のキーと値のペアを 1 つのオブジェクトに展開します。
キーが重複する場合(この例では "size")、後に現れる辞書の値が優先されます。ここでは、overrides の "large" が defaults の "medium" を上書きし、すべてのユニークなキーを結合しつつ、最新の値を優先したマージ済み辞書が得られます。
1. 関数呼び出しで辞書に ** を使用した場合の結果は何ですか?
2. Pythonでアンパッキングを使って2つの辞書を結合する方法はどれですか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください