任务二:演员参演电影统计 统计每个演员参演的电影数量和分别有哪些电影,将结果按参演电影数量降序排列,并按照下列要求填入sheet中: 1. 在“电影信息统计.xlsx”文件中新增一个名为“演员参演统计”的sheet,统计每个演员参演的电影数量和参演电影列表。 2. 第一列填写演员名称,第二列填写演员参演电影数量,第三列填写演员参演电影列表。同一演员参演的多部电影在同一单元格中以逗号(,)分隔。 3. 按演员参演电影数量降序排列填入sheet,参演数量相同的演员按姓名中文升序排列。代码怎么写
时间: 2024-02-13 17:03:51 浏览: 102
首先我们需要读取电影信息,并将其整理成一个字典,key为演员名称,value为演员参演的电影列表。代码如下:
```python
import openpyxl
# 读取电影信息
wb = openpyxl.load_workbook('电影信息.xlsx')
sheet = wb['电影信息']
actors_movies = {}
for row in sheet.iter_rows(min_row=2, values_only=True):
actor = row[2]
movie = row[0]
if actor not in actors_movies:
actors_movies[actor] = []
actors_movies[actor].append(movie)
```
接下来,我们需要统计每个演员参演的电影数量,并将其按照参演电影数量降序排列。代码如下:
```python
# 统计每个演员参演的电影数量
actors_movies_count = {}
for actor, movies in actors_movies.items():
actors_movies_count[actor] = len(movies)
# 按演员参演电影数量降序排列
sorted_actors_movies_count = sorted(actors_movies_count.items(), key=lambda x: (-x[1], x[0]))
# 将结果填入表格中
ws = wb.create_sheet('演员参演统计')
ws.append(['演员名称', '演员参演电影数量', '演员参演电影列表'])
for actor, count in sorted_actors_movies_count:
movies = ','.join(actors_movies[actor])
ws.append([actor, count, movies])
wb.save('电影信息.xlsx')
```
这样,就完成了演员参演电影统计的任务。
阅读全文