在Python中解压字典

Joh*_*ohn 1 python python-3.x

以下程序给出错误意外关键字参数“John”

def fn(a,b):    
    
    print(a, b)

emp = {'John':1, 'David':2}
fn(**emp)
Run Code Online (Sandbox Code Playgroud)

仅当字典的键为“a”和“b”时才有效。

我预计它会打印 1 和 2

Mar*_*vić 5

下面的代码

emp = {'John':1, 'David':2}
fn(**emp)
Run Code Online (Sandbox Code Playgroud)

相当于fn(John=1, David=2). 当它设置为a和时它会起作用b,因为这些是你的参数的名称。现在我猜你想从字典中解压缩值。你可以这样做

emp = {'John':1, 'David':2}
fn(*emp.values())
Run Code Online (Sandbox Code Playgroud)

另请注意,如果该函数fn所做的唯一事情是将值传递给,print那么就没有真正的理由拥有它,因为您可以轻松地执行此操作

print(*emp.values())
Run Code Online (Sandbox Code Playgroud)