在 python2 中使用字典作为单行代码填充方法中的默认变量
Using dictionary to populate default variables in methods as a one-liner in 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)
就可以了。这正是我要找的。
我想将字典中的值(仅当它存在时)传递给我的函数。如果该字典中不存在键、值,我希望该方法使用其默认值。
例如,使用方法 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)
就可以了。这正是我要找的。