You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python代码输出的第二列avg_n_ratings按降序排序

iOS应用分类平均评分量降序排序实现方案

问题根源

现有代码在遍历分类过程中计算完单分类平均评分量后直接打印,未对全部分类的计算结果做归集、排序操作,输出顺序完全跟随genres_ios的原始遍历顺序,无法实现按avg_n_ratings降序排列的效果。

实现步骤

  • 新增结果存储列表,计算过程中不直接打印,将每个分类的名称、对应平均评分量以元组形式存入列表
  • 调用Python内置sorted()方法对结果列表排序,指定排序维度为平均评分量、排序规则为降序
  • 遍历排序完成的结果列表,按格式输出内容

可直接运行的修改后代码

genres_ios = freq_table(ios_final, -5)
# 初始化列表存储分类与对应平均评分量的映射结果
genre_rating_res = []

for genre in genres_ios:
    total = 0
    len_genre = 0
    for app in ios_final:
        genre_app = app[-5]
        if genre_app == genre:            
            n_ratings = float(app[5])
            total += n_ratings
            len_genre += 1
    avg_n_ratings = total / len_genre
    # 结果追加到存储列表,暂不打印
    genre_rating_res.append( (genre, avg_n_ratings) )

# 按平均评分量(元组第二个元素)降序排序
sorted_res = sorted(genre_rating_res, key=lambda item: item[1], reverse=True)

# 遍历排序后的结果输出
for genre_name, avg_rating_count in sorted_res:
    print(genre_name, ':', avg_rating_count)

关键参数说明

  • key=lambda item: item[1]:指定排序的参考维度为元组的第二个元素,也就是计算得到的avg_n_ratings字段
  • reverse=True:控制排序为降序,删除该参数时默认按升序排列

内容的提问来源于stack exchange,提问作者hendricks134

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:57:12