(129) ディクショナリ型データのアンパック構文

投稿者: | 2025年4月23日

53 views

(1) 便利な使い方 その1

こんな関数があるとする。

def my_func( aaa, bbb ):
    return aaa + bbb

普通に使えばこう呼び出す。

my_func( 10, 30 )
my_func( aaa=10, bbb=30 )
my_func( bbb=30, aaa=10 )

このとき、
ディクショナリ型データを作っておき、
 それをアンパックして関数に渡す。

ということができる。

ccc = {"aaa": 10, "bbb": 30}
my_func( **ccc )

** がアンパック構文だ。
アンパックされると、以下のように関数の引数として展開される。

my_func( aaa=10, bbb=30 )

引数の数が多くなったときに便利だ。

(2) 便利な使い方 その2

こんな関数があるとする。

def show_profile( **ppp ):
    for key, value in ppp.items():
        print(f"{key}: {value}")

通常は関数側で引数を定義しているが、この使い方では 任意の数のパラメータを渡せる。

show_profile( aaa="AAA", bbb="ZZZ", ccc="VVV" )

実行結果は以下の通り。

aaa: AAA
bbb: ZZZ
ccc: VVV

(3) 便利な使い方 その3

複数の dictionary型データをまとめることができる。
単純な連結ではなく、キーが重複していれば、後に指定した方で上書き される。

defaults      = {'language': 'ja', 'theme': 'light'}
user_settings = {'language': 'en'}

settings = {**defaults, **user_settings}
print(settings)

実行結果はこうなる。ja が en で上書きされた。

{'language': 'en', 'theme': 'light'}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です