另請參閱集合模塊的defaultdict類。這是一個字典,您可以指定在未找到密鑰時必須返回的內容。有了它,你可以做這樣的事情:
class MyDefaultObj:
def __init__(self):
self.a = 1
from collections import defaultdict
d = defaultdict(MyDefaultObj)
i = d['NonExistentKey']
type(i)
<instance of class MyDefalutObj>
它允許你使用熟悉的d [i]約定。
然而,正如mikej說,獲得()也可以,但是這裏是形式更接近你的JavaScript示例:
d = {}
i = d.get('NonExistentKey') or MyDefaultObj()
# the reason this is slightly better than d.get('NonExistent', MyDefaultObj())
# is that instantiation of default value happens only when 'NonExistent' does not exist.
# With d.get('NonExistent', MyDefaultObj()) you spin up a default every time you .get()
type(i)
<instance of class MyDefalutObj>
感謝,這正是我一直在尋找!我想你只是設置一個新的速度記錄。 – 2010-06-21 23:44:46
嘿,有可能這樣做只爲一個特定的特徵的關鍵... [這裏](http://stackoverflow.com/a/6467555/5961780),一個值只返回時,'鑰匙',或'名字',以字母'f'開頭。 – sbrm1 2016-10-06 03:52:25