我正在尝试根据它的值对我的字典进行排名。例如:
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]`
所以得分的等级。值等于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}