私はこれがあまり好きではありません: 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 以外のデフォルトが必要な場合はどうなりますか?
ラムダを使用できます:
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で?