擅长:python、mysql、java
<p>正如其他人所指出的,问题在于如果找不到键,<code>dict</code>不会返回{<cd2>},而是引发一个<code>KeyError</code>异常(<a href="http://docs.python.org/library/stdtypes.html?highlight=dict#dict" rel="nofollow">as seen in the documentation</a>)。在</p>
<p>为了克服这个问题,您可以使用<code>defaultdict</code>from<code>collections</code>并将<code>None</code>设置为该dict的默认值。我建议您阅读<a href="http://docs.python.org/library/collections.html#collections.defaultdict" rel="nofollow">classes documentation</a>。在</p>
<p>在这种情况下,您可以使用<code>parentMap = defaultdict(lambda: None, some_initializer)</code>或{<cd11>},而不是将<code>dict</code>初始化为<code>parentMap = dict(some_initializer)</code>或{<cd11>},而缺少的键将返回<code>None</code>,而不是引发<code>KeyError</code>异常。在</p>
<p>在一个无关的问题中,<code>None</code>是一个单例,最好检查<code>item is not None</code>而不是使用<code>!=</code>。在我看来,它生成了更清晰的代码。在</p>