python中与字典值相关的排名值

2024-04-19 05:58:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着根据字典的价值来给它排序。例如:

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

输出:score={'178413':2.0,'178414':1.0}

如果 输入分数为{178413':0.0,'178414':0.0}


Tags: inimportfor字典asstatscountscipy