擅长:python、mysql、java
<p>这个问题没有很好地定义,而且对于某些词典来说,接受的答案将失败。它依赖于密钥排序,这是不保证的。向字典中添加其他键、删除键,甚至添加键的顺序都会影响排序。</p>
<p>更安全的解决方案是选择一个字典,<code>d</code>在本例中,从中获取密钥,然后使用这些密钥访问第二个字典:</p>
<pre><code>d = {'a':5, 'b':6, 'c': 3}
d2 = {'a':6, 'b':7, 'c': 3}
[(k, d2[k], v) for k, v in d.items()]
</code></pre>
<p>结果:</p>
<pre><code>[('b', 7, 6), ('a', 6, 5), ('c', 3, 3)]
</code></pre>
<p>这并不比其他答案更复杂,而且对于访问哪些键是明确的。如果字典有不同的键顺序,比如<code>d2 = {'x': 3, 'b':7, 'c': 3, 'a':9}</code>,那么仍然会给出一致的结果。</p>