python在列表中获得dicts的排名

时间:2015-10-14 21:57:53

标签: python

请考虑以下事项:

from random import random
data = [{'label': 'one', 'count': random()}, {'label': 'two', 'count': random()}, {'label': 'three', 'count': random()}]

for row in data:
    row['score'] = row['count']*2

data = sorted(data, key=lambda k: k['score'], reverse=True)

我希望data列表中的每个dict都有一个列rank,其列的整数等级为0-n score类。

1 个答案:

答案 0 :(得分:0)

您已经对列表进行了排序。所以你需要做的就是遍历列表并为它们分配排名 试试这个:

for i in range(0, len(data)):
    data[i]['rank'] = i+1

输出:

  

[{' count':0.6629962329614308,'得分':1.3259924659228617,'排名':1,'标签':&#39 ;一个'},{'计数':0.5252504729422107,'得分':1.0505009458844214,' rank':2,'标签': '三'},{'计数':0.0887804798621562,'得分':0.1775609597243124,' rank':3,'标签&# 39;:'两个'}]