给定一个字典,其中键为电影名称,值为该电影的导演、主演、评分和类型,写一个函数,根据电影类型将电影分类,并计算每个分类中电影的平均评分(avg_score)、电影数(count)以及总评分(sum_score),并用一个新字典来统计这些信息,最后输出该字典的内容。(字典的结构和部分代码如下,请补全下面的程序) def classify_movies(movies_dict): type_dict = {} ____________________________ return type_dict movies = { '泰坦尼克号': { '导演': '詹姆斯·卡梅隆', '主演': ['莱昂纳多·迪卡普里奥', '凯特·温丝莱特'], '评分': 7.8, '类型': ['爱情', '灾难'] },
时间: 2024-01-01 16:05:44 浏览: 132
python 将列表里的字典元素合并为一个字典实例
下面是补全后的代码:
```python
def classify_movies(movies_dict):
type_dict = {}
for movie, info in movies_dict.items():
for movie_type in info['类型']:
if movie_type not in type_dict:
type_dict[movie_type] = {'count': 1, 'sum_score': info['评分']}
else:
type_dict[movie_type]['count'] += 1
type_dict[movie_type]['sum_score'] += info['评分']
for movie_type, info in type_dict.items():
info['avg_score'] = info['sum_score'] / info['count']
return type_dict
movies = {
'泰坦尼克号': {
'导演': '詹姆斯·卡梅隆',
'主演': ['莱昂纳多·迪卡普里奥', '凯特·温丝莱特'],
'评分': 7.8,
'类型': ['爱情', '灾难']
},
'教父': {
'导演': '弗朗西斯·福特·科波拉',
'主演': ['马龙·白兰度', '阿尔·帕西诺'],
'评分': 9.2,
'类型': ['剧情', '犯罪']
},
'阿甘正传': {
'导演': '罗伯特·泽米吉斯',
'主演': ['汤姆·汉克斯', '罗宾·怀特'],
'评分': 9.5,
'类型': ['剧情', '爱情']
}
}
type_dict = classify_movies(movies)
print(type_dict)
```
输出结果如下:
```
{'爱情': {'count': 2, 'sum_score': 17.3, 'avg_score': 8.65}, '灾难': {'count': 1, 'sum_score': 7.8, 'avg_score': 7.8}, '剧情': {'count': 2, 'sum_score': 18.7, 'avg_score': 9.35}, '犯罪': {'count': 1, 'sum_score': 9.2, 'avg_score': 9.2}}
```
该程序首先定义了一个空字典`type_dict`,然后遍历输入的电影字典`movies_dict`,对于每个电影,遍历其中的类型列表,如果类型不在`type_dict`中,就将该类型加入字典,并初始化`count`为1,`sum_score`为该电影的评分;否则,就将该类型的`count`加1,`sum_score`加上该电影的评分。然后再次遍历`type_dict`,计算每个类型的平均评分,最后返回`type_dict`。
阅读全文