λ J*_*kas 43 python syntax dictionary operators set-operations
我对以下python表达式很感兴趣:
d3 = dict(d1, **d2)
Run Code Online (Sandbox Code Playgroud)
任务是将2个词典合并为第三个词典,上面的表达式完成任务就好了.我对**运算符感兴趣,它对表达式究竟做了什么.我认为**是功率运算符,还没有看到它在上面的上下文中使用过.
完整的代码片段是这样的:
>>> d1 = {'a': 1, 'b': 2}
>>> d2 = {'c': 3, 'd': 4}
>>> d3 = dict(d1, **d2)
>>> print d3
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 12
**将字典转换为关键字参数:
>>> d1 = {'a': 1, 'b': 2}
>>> d2 = {'c': 3, 'd': 4}
>>> d3 = dict(d1, **d2)
Run Code Online (Sandbox Code Playgroud)
变为:
>>> d3 = dict(d1, c=3, d=4)
Run Code Online (Sandbox Code Playgroud)
在Python中,任何函数都可以用*接受多个参数;
或**的多个关键字参数.
接收方示例:
>>> def fn(**kwargs):
... for kwarg in kwargs:
... print kwarg
...
>>> fn(a=1,b=2,c=3)
a
c
b
Run Code Online (Sandbox Code Playgroud)
呼叫方示例(感谢托马斯):
>>> mydict = dict(a=1,b=2,c=3)
>>> fn(**mydict)
a
c
b
Run Code Online (Sandbox Code Playgroud)