<p>对于嵌套字典的大列表,我想检查它们是否包含键。
它们中的每一个都可能有或没有一个嵌套字典,因此,如果我在所有这些字典中循环此搜索,将引发一个错误:</p>
<pre><code>for Dict1 in DictionariesList:
if "Dict4" in Dict1['Dict2']['Dict3']:
print "Yes"
</code></pre>
<p>到目前为止,我的解决方案是:</p>
<pre><code>for Dict1 in DictionariesList:
if "Dict2" in Dict1:
if "Dict3" in Dict1['Dict2']:
if "Dict4" in Dict1['Dict2']['Dict3']:
print "Yes"
</code></pre>
<p>但这是一个头痛,丑陋,可能不是很有效的资源。
在第一种类型的方式下,哪种方法是正确的,但是在字典不存在时不会产生错误?</p>
<p>尝试/排除块怎么样:</p>
<pre><code>for Dict1 in DictionariesList:
try:
if 'Dict4' in Dict1['Dict2']['Dict3']:
print 'Yes'
except KeyError:
continue # I just chose to continue. You can do anything here though
</code></pre>