web-dev-qa-db-ja.com

Python dictをkwargsに変換しますか?

クラス継承を使用してsunburnt(solrインターフェイス)のクエリを構築し、キーと値のペアを一緒に追加したいと思います。 sunburntインターフェースはキーワード引数を取ります。辞書({'type':'Event'})をキーワード引数(type='Event')に変換するにはどうすればよいですか?

258
teaforthecat

double-star (別名 double-splat? )演算子を使用します。

func(**{'type':'Event'})

に等しい

func(type='Event')
450
unutbu

ここでは**演算子が役立ちます。

**演算子はdict要素をアンパックするため、**{'type':'Event'}type='Event'として扱われます

func(**{'type':'Event'})func(type='Event')と同じです。つまり、dict要素はkeyword argumentsに変換されます。

参考までに

*はリスト要素をアンパックし、それらはpositional argumentsとして扱われます。

func(*['one', 'two'])func('one', 'two')と同じです

5

**演算子を使用して、辞書から値をキーワード引数として渡す方法を示す完全な例を次に示します。

>>> def f(x=2):
...     print(x)
... 
>>> new_x = {'x': 4}
>>> f()        #    default value x=2
2
>>> f(x=3)     #   explicit value x=3
3
>>> f(**new_x) # dictionary value x=4 
4
1
Ben Mares