回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>考虑一个具有混合键类型的python字典:</p>
<pre><code>chrDict = {'1':234,'12':45,'23':121,'2':117,'chX':12,'chY':32}
</code></pre>
<p>我想把那些字符串类型的键转换成int类型的数字键,剩下的就剩下了。我预期的结果是:</p>
<pre><code>chrDict = {1:234,12:45,23:121,2:117,'chX':12,'chY':32}
</code></pre>
<p>我尝试了以下方法:</p>
<pre><code>chrDict.update((int(i),j) for i,j in chrDict.items())
</code></pre>
<p>这给了我一个错误:</p>
<pre><code>TypeError: cannot convert dictionary update sequence element #0 to a
sequence
</code></pre>
<p>然后我试着:</p>
<pre><code>for i,j in chrDict.items():
try:
chrDict.update(int(x),y)
except:
pass
</code></pre>
<p>但是我得到的输出是不正确的,它没有改变:</p>
<pre><code>{'1': 234, '12': 45, '23': 121, '2':117, 'chX': 12, 'chY': 32}
</code></pre>
<p>实际上,我希望这样做,以便以后更容易排序。如果我尝试:</p>
<pre><code>sorted(chrDict.items())
</code></pre>
<p>它给我以下输出:</p>
<pre><code>[('1', 234), ('12', 45), ('2', 117), ('23', 121), ('chX', 12), ('chY', 32)]
</code></pre>
<p>键值<code>2</code>应该在键值<code>1</code>之后,这是不发生的。你知道吗</p>
<p>所以请给我一些建议来解决这个问题。有没有更好的办法解决这个问题?你知道吗</p>