字典和默认值

新手上路,请多包涵

假设 connectionDetails 是一个 Python 字典,那么像这样重构代码的最好、最优雅、最“pythonic”的方法是什么?

 if "host" in connectionDetails:
    host = connectionDetails["host"]
else:
    host = someDefaultValue

原文由 mnowotka 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 255
2 个回答

像这样:

 host = connectionDetails.get('host', someDefaultValue)

原文由 MattH 发布,翻译遵循 CC BY-SA 4.0 许可协议

您还可以使用 defaultdict 像这样:

 from collections import defaultdict
a = defaultdict(lambda: "default", key="some_value")
a["blabla"] => "default"
a["key"] => "some_value"

您可以传递任何普通函数而不是 lambda:

 from collections import defaultdict
def a():
  return 4

b = defaultdict(a, key="some_value")
b['absent'] => 4
b['key'] => "some_value"

原文由 tamerlaha 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题