回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>使用Python中的排序算法对列表字典进行排序</p>
<p>我试图在不使用Python中现有的固定函数和方法(即sorted()和.sort())的情况下对列表字典进行排序(降序)</p>
<p>我使用冒泡排序算法创建了一个函数。
但是,它正在对元素进行排序,但键不会与其对应的元素一起移动</p>
<p>以下是函数:</p>
<pre><code>def bubbleDecDic(dictio):
end=len(dictio)
ndictio=dictio
country=list(dictio.keys())
for i in range(end-1,0,-1):
for j in range(i):
if ndictio[country[j]]< ndictio[country[j+1]]:
ndictio[country[j+1]], ndictio[country[j]]= ndictio[country[j]], ndictio[country[j+1]]
return ndictio
</code></pre>
<p>以下是输入字典的示例:</p>
<pre><code>swim={'Russia': [0, 1, 1], 'China': [1, 2, 0], 'Australia': [1, 0, 0], 'Cuba': [1, 0, 0], 'Canada': [2, 1, 0]}
# input dictionary
# Country: [ gold, silver, bronze]
# gold > silver > bronze
{'Russia': [0, 1, 1],
'China': [1, 2, 0],
'Australia': [1, 0, 0],
'Cuba': [1, 0, 0],
'Canada': [2, 1, 0]}
bubbleDecDic(swim)
</code></pre>
<p>输出将键保持在相同的位置,并对元素进行排序:</p>
<pre><code>{'Russia': [2, 1, 0],
'China': [1, 2, 0],
'Australia': [1, 0, 0],
'Cuba': [1, 0, 0],
'Canada': [0, 1, 1]}
</code></pre>
<p>我的目标是按元素排序,但键应该放在一起</p>
<p>这是我试图获得的输出:</p>
<pre><code>{'Canada': [2, 1, 0],
'China': [1, 2, 0],
'Australia': [1, 0, 0],
'Cuba': [1, 0, 0],
'Russia': [0, 1, 1]
}
</code></pre>