<p>像其他人所建议的那样使用<code>get()</code>是最简单的解决方案,但是如果你愿意,你可以比仅仅说“不相等”更具体:</p>
<pre><code>result={"jazi": 1, "juge": 1, "juha": 9, "lebe": 4}
result2={"jazi": 3, "juge": 4, "juha": 1, "lebe": 4, "aba":7, "meze":9}
print("Only in result:", ", ".join(set(result).difference(result2)))
print("Only in result2:", ", ".join(set(result2).difference(result)))
for key in set(result).intersection(result2):
if result[key]!=result2[key]:
print("%s not equal"% (key))
</code></pre>
<p>提供:</p>
<pre><code>Only in result:
Only in result2: aba, meze
juha not equal
jazi not equal
juge not equal
</code></pre>
<p>或者更清楚一点:</p>
<pre><code>keys, keys2 = set(result), set(result2)
print("Only in result:", ", ".join(keys - keys2))
print("Only in result2:", ", ".join(keys2 - keys))
for key in keys & keys2:
if result[key]!=result2[key]:
print("%s not equal"% (key))
</code></pre>
<p>这是完全相同的,但是预先计算了集合,所以可以对<code>.difference()</code>使用内联运算符<code>-</code>,对<code>.intersection()</code>使用内联运算符<code>&</code>。你知道吗</p>
<p>或者如果你只是想要“不平等”的信息:</p>
<pre><code>keys, keys2 = set(result), set(result2)
for key in (keys ^ keys2) | {
key for key in keys & keys2 if result[key] != result2[key] }:
print("%s not equal"% (key))
</code></pre>