有一个Python字典:
a = {b:{c:{"x":1, "y":2, "z":3}}}
我想知道是否a[b][c]["z"]
存在,
但我还不知道是否a[b][c]
or a[b]
都存在。
所以,如果我这样做:
if "z" in a[b][c]:
我可能会得到一个"key c doesn't exist in a[b]"
or "key b doesn't exist in a"
error.
在这种情况下如何正确检查 z 是否存在于 a[b][c] 中?
python 的方式是根本不用费心去检查。
try:
value = a[b][c]["z"]
# do something with value
except KeyError:
print 'Sorry wrong key'
这里 a、b、“z” 的任何组合可能从字典中丢失,但它们都会被异常处理程序捕获。另外,存在确切密钥的情况将导致其余代码被执行。
您可能还想考虑使用默认字典
第一个参数提供 default_factory 的初始值
属性;它默认为“无”。所有剩余的参数都被处理
与传递给 dict 构造函数相同,包括
关键字参数。
这可以保证像这样的符号a[b][c]["z"]
将始终执行而不会出现错误,并且在某些情况下可能很有用,特别是在您试图避免样板代码的情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)