lit*_*itd 5 python lookup dictionary default-value
>>> d2
{'egg': 3, 'ham': {'grill': 4, 'fry': 6, 'bake': 5}, 'spam': 2}
>>> d2.get('spamx',99)
99
>>> d2.get('ham')['fry']
6
Run Code Online (Sandbox Code Playgroud)
我想获得火腿里面的鱼苗值,如果没有,得到值,99或88作为第二个例子.但是怎么样?
Odd*_*ing 13
d2.get('ham', {}).get('fry', 88)
Run Code Online (Sandbox Code Playgroud)
我可能会把它分解成现实生活中的几个陈述.
ham = d2.get('ham', {})
fry = ham.get('fry', 88)
Run Code Online (Sandbox Code Playgroud)
如果你需要经常这样做,你可以编写一个辅助函数
def get_nested(d, list_of_keys, default):
for k in list_of_keys:
if k not in d:
return default
d=d[k]
return d
print get_nested(d2,['ham','spam'],99)
print get_nested(d2,['ham','grill'],99)
Run Code Online (Sandbox Code Playgroud)