【发布时间】:2013-08-09 21:59:58
【问题描述】:
我不太喜欢这样:Accessing python dict with multiple key lookup string
所以:
In [113]: d = {'a':1, 'b':2}
In [114]: va, vb = map(d.get, ['a', 'b'])
In [115]: va, vb
Out[115]: (1, 2)
但是:
In [116]: va, vb = map(d.get, ['a', 'X'])
In [117]: va, vb
Out[117]: (1, None)
如果需要一个不同于 None 的默认值怎么办?
我可以使用 lambda:
In [118]: va, vb = map(lambda x: d.get(x) or 'MyDefault', ['a', 'c'])
In [119]: va, vb
Out[119]: (1, 'MyDefault')
但是对于编写 2 个 d.get(key, 'MyDefault') 调用来说,这是一种复杂且不经济的权衡。
有什么更好的(没有明显的解决方案,为此编写微不足道的效用函数)?特别是。在 Python 3 中?
【问题讨论】:
标签: python dictionary