请考虑以下事项:
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
类。
答案 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;:'两个'}]