sci*_*thx 10 python dictionary arguments
我有两个词典:
SP = dict{'key1': 'value1','key2': 'value2'}
CP = dict{'key1': 'value1','key2': 'value2'}
Run Code Online (Sandbox Code Playgroud)
我有一个函数,想把这两个词典作为输入,但我不知道该怎么做.
我试过了:
def test(**SP,**CP):
print SP.keys(),CP.keys()
test(**SP,**CP)
Run Code Online (Sandbox Code Playgroud)
通过对两个词典的大量修改,实际功能将更加复杂.但简单的测试功能对我不起作用:(
如果您只想将两个词典作为单独的参数,那就行了
def test(SP, CP):
print SP.keys(),CP.keys()
test(SP, CP)
Run Code Online (Sandbox Code Playgroud)
仅**当您希望将字典的各个键/值对作为单独的关键字参数传递时才使用.如果您将整个字典作为单个参数传递,则只需传递它,就像使用任何其他参数值一样.
小智 6
您可以使用dict构造函数将两个字典( SP和CP)合并为一个字典。
test(**dict(SP,**CP))
Run Code Online (Sandbox Code Playgroud)
当您要将两个不同的字典传递给均包含该函数的参数的函数时,应首先合并两个字典。
例如:
dicA = {'spam':3, 'egg':4}
dicB = {'bacon':5, 'tomato':6}
def test(spam,tomato,**kwargs):
print spam,tomato
#you cannot use:
#test(**dicA, **dicB)
Run Code Online (Sandbox Code Playgroud)
因此,您必须合并两个字典。有几种选择:请参见如何在一个表达式中合并两个Python字典?
dicC = dicA.copy()
dicC.update(dicB)
#so now one can use:
test(**dicC)
>> 3 6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7744 次 |
| 最近记录: |