def avg_point_sort(wine_list, country): """接收列表格式的葡萄酒数据和国家名列表为参数,计算每个国家的葡萄酒的平均得分, 返回值为国家名和得分的列表,按评分由高到低降序排列。 @参数 wine_list:葡萄酒数据,列表类型 @参数 country:国家名,列表类型 """ return
时间: 2024-03-22 20:37:08 浏览: 180
以下是实现该函数的代码:
```python
def avg_point_sort(wine_list, country):
# 创建一个空字典,用于存储每个国家的葡萄酒得分
country_points = {}
# 遍历葡萄酒列表,统计每个国家的葡萄酒得分总和和数量
for wine in wine_list:
if wine['country'] in country:
if wine['country'] not in country_points:
country_points[wine['country']] = [wine['points'], 1]
else:
country_points[wine['country']][0] += wine['points']
country_points[wine['country']][1] += 1
# 计算每个国家的平均得分,并存储到一个列表中
result = []
for c in country:
if c in country_points:
avg = country_points[c][0] / country_points[c][1]
result.append([c, avg])
# 根据得分从高到低排序
result.sort(key=lambda x: x[1], reverse=True)
return result
```
该函数与上一个函数 `avg_point` 的实现基本相同,只是在计算每个国家的平均得分后,对结果进行了排序。具体来说,使用了 `sort` 函数对结果进行排序,排序的关键字是列表的第二个元素,即得分,使用 `reverse=True` 参数表示降序排序。最后返回排序后的结果列表。
阅读全文