将对象集合中按某字段大小给另一字段添加排名
假设有一个对象集合objs,其中每个对象都有score和rank字段,需要按照score字段的大小给rank字段添加排名,排名从1开始。
可以使用以下代码实现:
# 按照score字段对objs集合进行排序
sorted_objs = sorted(objs, key=lambda obj: obj.score, reverse=True)
# 给rank字段添加排名
for i, obj in enumerate(sorted_objs):
obj.rank = i + 1
首先使用sorted函数对objs集合进行排序,key参数指定按照score字段排序,reverse参数指定按照降序排列。
然后使用enumerate函数遍历排序后的集合,对每个对象的rank字段赋值为当前排名。由于排名从1开始,需要在索引值上加上1。
原文地址: http://www.cveoy.top/t/topic/huma 著作权归作者所有。请勿转载和采集!