python中wrt字典值的排序
我正试图根据字典的价值对它进行排名。例如:python中wrt字典值的排序,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我正试图根据字典的价值对它进行排名。例如: score = {'178413': 0.0, '178414': 0.0} 术后应及时恢复 score = {'178413': 1.5, '178414': 1.5} 我试过了 import scipy.stats as ss temp = ss.rankdata(score.values()) print temp temp = [1.5 1.5]` 所以score.values的等级等于temp。我想将对
score = {'178413': 0.0, '178414': 0.0}
术后应及时恢复
score = {'178413': 1.5, '178414': 1.5}
我试过了
import scipy.stats as ss
temp = ss.rankdata(score.values())
print temp
temp = [1.5 1.5]`
所以score.values的等级等于temp。我想将对应的临时值替换回放置值的字典中
但似乎无法将其放回字典中
**我试过的完整代码**
下面是我把它放回字典的方法。我只是觉得这不正确
import scipy.stats as ss
score = {'178413': 3, '178414': 0.0}
inv_score = {y:x for x,y in score.iteritems()}
rank_val = ss.rankdata(score.values())
count = 0
for i in score.values():
id = inv_score[i]
score[id] = rank_val[count]
count += 1
输出:分数={'178413':2.0,'178414':1.0}
如果
输入分数为{'178413':0.0,'178414':0.0}我一点也不清楚您认为输出与输入的我的问题相对应。谢谢“似乎无法将其放回字典”-您尝试了什么,发生了什么?请注意,列表是有序的,但字典不是……因此,一旦我计算了字典值的排名。我想将原始字典中的值替换为相应的等级“…您尝试了什么,发生了什么?”请给出一个答案。