在 python2 中使用字典将方法中的默认变量作为单行填充



我想从字典中传入一个值 - 仅当它存在时 - 到我的函数。如果此字典中不存在键值,我希望该方法使用其默认值。

例如,使用方法 m:

def m(a=1, b=2, c=3)

和字典 d:

d = {"a": 5}

我想将字典的值传入方法(如果它们存在于一行中(。像这样:

m(a=d["a"] if d.get("a"), b=d["b"] if d.get("b"), c=d["c"] if d.get("c"))

有没有办法在 python2 中作为一行来做到这一点?或者我是否坚持使用多个 if 条件,如下所示:

if d.get("a") and d.get("b") and d.get("c"):
    m(a=d["a"], b=d["b"], c=d["c"])
elif d.get("a") and d.get("b"):
    m(a=d["a"], b=d["b"])
elif d.get("a"):
    m(a=d["a"])
# ...and so on

如果我打电话m(**d)它就可以了。这正是我想要的。

最新更新