回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>给定一个字符串:</p>
<blockquote>
<p>LexicalReordering0= -1.88359 0 -1.6864 -2.34184 -3.29584 0
Distortion0= -4 LM0= -85.3898 WordPenalty0= -13 PhrasePenalty0= 11
TranslationModel0= -6.79761 -3.06898 -8.90342 -4.35544</p>
</blockquote>
<p>它包含以<code>=</code>结尾的所需字典的键,直到下一个键为止,其余由空格分隔的值都是当前键的值。在</p>
<p><strong>请注意,在解析输入字符串之前不知道键的名称</strong></p>
<p>生成的词典应如下所示:</p>
<blockquote>
<p>{'PhrasePenalty0=': [11.0], 'Distortion0=': [-4.0],
'TranslationModel0=': [-6.79761, -3.06898, -8.90342, -4.35544],
'LM0=': [-85.3898], 'WordPenalty0=': [-13.0], 'LexicalReordering0=':
[-1.88359, 0.0, -1.6864, -2.34184, -3.29584, 0.0]}</p>
</blockquote>
<p>我可以用这个循环:</p>
<pre><code>>>> textin ="LexicalReordering0= -1.88359 0 -1.6864 -2.34184 -3.29584 0 Distortion0= -4 LM0= -85.3898 WordPenalty0= -13 PhrasePenalty0= 11 TranslationModel0= -6.79761 -3.06898 -8.90342 -4.35544"
>>> thiskey = ""
>>> thismap = {}
>>> for element in textin.split():
... if element[-1] == '=':
... thiskey = element
... thismap[thiskey] = []
... else:
... thismap[thiskey].<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(float(element))
...
>>> map
{'PhrasePenalty0=': [11.0], 'Distortion0=': [-4.0], 'TranslationModel0=': [-6.79761, -3.06898, -8.90342, -4.35544], 'LM0=': [-85.3898], 'WordPenalty0=': [-13.0], 'LexicalReordering0=': [-1.88359, 0.0, -1.6864, -2.34184, -3.29584, 0.0]}
</code></pre>
<p>但是<strong>有没有其他方法可以从输入字符串中获得相同的字典?或者一些pyex解析器。在</p>