<p>这里有一个简单的方法,可以通过使用<code>str.split()</code>和理解来实现这一点:</p>
<pre class="lang-py prettyprint-override"><code>>>> d = {
... 'images/distorted/png/31LVTDXBL7AOT2QXJYOJ7PTCYKULRH_00_l.png': 1.2,
... 'images/distorted/png/3NVC2EB65QZGAZCURNCDJZSS1ILY3F_00_l.png': 1.6,
... 'images/distorted/png/3KWTYT08703ZOFSZMRBG4OOG64KL5M_00_l.png': 3.0
... }
>>>
>>> {k.split('/')[-1].split('.')[0]: v for k, v in d.items()}
</code></pre>
<p>导致:</p>
<pre class="lang-py prettyprint-override"><code>{
'31LVTDXBL7AOT2QXJYOJ7PTCYKULRH_00_l': 1.2,
'3NVC2EB65QZGAZCURNCDJZSS1ILY3F_00_l': 1.6,
'3KWTYT08703ZOFSZMRBG4OOG64KL5M_00_l': 3.0
}
</code></pre>
<p>总而言之,您的代码如下所示:</p>
<pre class="lang-py prettyprint-override"><code>name_score_mapping = {
'images/distorted/png/31LVTDXBL7AOT2QXJYOJ7PTCYKULRH_00_l.png': 1.2,
'images/distorted/png/3NVC2EB65QZGAZCURNCDJZSS1ILY3F_00_l.png': 1.6,
'images/distorted/png/3KWTYT08703ZOFSZMRBG4OOG64KL5M_00_l.png': 3.0
}
new_dict = {
k.split('/')[-1].split('.')[0]: v
for k, v in name_score_mapping.items()
}
</code></pre>
<p>下面是一个使用<code>pathlib.Path()</code>的额外选项:</p>
<pre class="lang-py prettyprint-override"><code>from pathlib import Path
name_score_mapping = {
'images/distorted/png/31LVTDXBL7AOT2QXJYOJ7PTCYKULRH_00_l.png': 1.2,
'images/distorted/png/3NVC2EB65QZGAZCURNCDJZSS1ILY3F_00_l.png': 1.6,
'images/distorted/png/3KWTYT08703ZOFSZMRBG4OOG64KL5M_00_l.png': 3.0
}
new_dict = {
Path(k).stem: v
for k, v in name_score_mapping.items()
}
</code></pre>