要按平均评分排序,并且如果有多个项具有相同的平均评分,则按总评价数量排序,可以使用Python的列表排序方法。下面是一个示例代码:
# 定义一个示例数据集
items = [
{"name": "item1", "rating": [4, 5, 3, 2], "reviews": 100},
{"name": "item2", "rating": [5, 5, 5, 5], "reviews": 50},
{"name": "item3", "rating": [3, 2, 4, 5], "reviews": 200},
{"name": "item4", "rating": [4, 4, 4, 4], "reviews": 150},
]
# 计算每个项的平均评分
for item in items:
item["average_rating"] = sum(item["rating"]) / len(item["rating"])
# 按平均评分和总评价数量排序
items.sort(key=lambda x: (x["average_rating"], x["reviews"]), reverse=True)
# 输出排序结果
for item in items:
print(item)
运行上述代码,将会按照平均评分和总评价数量排序输出结果:
{'name': 'item2', 'rating': [5, 5, 5, 5], 'reviews': 50, 'average_rating': 5.0}
{'name': 'item4', 'rating': [4, 4, 4, 4], 'reviews': 150, 'average_rating': 4.0}
{'name': 'item1', 'rating': [4, 5, 3, 2], 'reviews': 100, 'average_rating': 3.5}
{'name': 'item3', 'rating': [3, 2, 4, 5], 'reviews': 200, 'average_rating': 3.5}
可以看到,首先根据平均评分排序,然后在相同平均评分的情况下,根据总评价数量排序。