<p>第一个问题是数值仍然在字符串中(出于某种原因,字符串在一个元素列表中)。我建议您按<code>':'</code>分割字符串,并使用字典作为合并数据结构,而不是列表</p>
<pre><code>>>> u = ['river: 0.3']
>>> v = ['spread: 0.04']
>>> s = ['idaho: 0.5']
>>>
>>> d = {}
>>> for item, in (u, v, s):
... key, value = item.split(':')
... d[key] = float(value)
...
>>> d
{'spread': 0.04, 'river': 0.3, 'idaho': 0.5}
</code></pre>
<p>注意<code>item,</code>解压长度为1的列表</p>
<p>当然,如果您硬编码了<code>u</code>、<code>v</code>和<code>s</code>,您也可以直接输入<code>
d = {'river': 0.3, 'spread': 0.04, 'idaho': 0.5}</code></p>
<p>现在您有了一个很好的、干净的字典,便于查找操作</p>
<pre><code>>>> d['river']
0.3
</code></pre>
<p>现在可以按值降序对dict的<code>items</code>排序</p>
<pre><code>>>> from operator import itemgetter
>>> sorted(d.items(), key=itemgetter(1), reverse=True)
[('idaho', 0.5), ('river', 0.3), ('spread', 0.04)]
</code></pre>
<p>。。。如果您只需要具有最大值的(key,value)对,也可以使用<code>max</code>内置项</p>
<pre><code>>>> max(d.items(), key=itemgetter(1))
('idaho', 0.5)
>>>
>>> _, max_value = max(d.items(), key=itemgetter(1))
>>> max_value
0.5
</code></pre>