统计分析电影信息
统计过程分解为多个步骤,要求实现如下两个函数:
1) 函数construct_movies_by_director(data_list)
- 参数data_list是一个每个元素形如"(年份,电影名,票房,导演)"元组的列表,见代码中的data_list对象。
- 函数处理传入的列表对象data_list,得到并返回一个字典。返回的字典,key是导演,value是每项形如"(年份,电影名,票房)"元组的电影信息列表。
- 在处理过程中,如果同样的电影信息出现多次,则抛出异常"重复数据"。代码中的data_list列表对象在处理后得到的字典如下:
{'Ron Howard': [(2013, 'Rush', 26.9), (2001, 'A Beautiful Mind', 171.0)], 'Steve McQueen': [(2008, 'Hunger', 154.0)]}
2) 函数top_directors(movie_dict)
- 参数movie_dict为调用函数construct_movies_by_director返回的结果。
- 经处理后返回一个列表,其每个元素是形如"(导演,总票房)"的元组,其中总票房是该导演所有执导电影的票房之和。且返回的列表按总票房从大到小的顺序排序。
- 上面的字典,经本函数处理后返回的结果如下:
[('Ron Howard', 197.9), ('Steve McQueen', 154.0)]
编程实现:
data_list = [(2013, 'Rush', 26.9, 'Ron Howard'), (2001, 'A Beautiful Mind',