修改该代码import openpyxl from openpyxl import Workbook fn = r'D:\Python Homework\实践2素材.xlsx' wb = openpyxl.load_workbook(fn) ws = wb.active actor_dict = dict() for i, b in enumerate(ws): if i == 0: continue filmName, actor = b[0].value, b[2].value.split('\n') for a in actor: actor_dict[a] = actor_dict.get(a,set()) actor_dict[a].add(filmName) actor_lict = sorted(actor_dict.items(), key=lambda x: str(x[0][2:])) actor_dict = dict(actor_dict) print("演员所参演的电影字典:{}".format(actor_dict))
时间: 2024-03-25 21:37:11 浏览: 24
代码中有一个小错误,actor_lict 应该是 actor_dict,下面是修改后的代码:
```python
import openpyxl
from openpyxl import Workbook
fn = r'D:\Python Homework\实践2素材.xlsx'
wb = openpyxl.load_workbook(fn)
ws = wb.active
actor_dict = dict()
for i, b in enumerate(ws):
if i == 0:
continue
filmName, actor = b[0].value, b[2].value.split('\n')
for a in actor:
actor_dict[a] = actor_dict.get(a,set())
actor_dict[a].add(filmName)
actor_dict = dict(sorted(actor_dict.items(), key=lambda x: str(x[0][2:])))
print("演员所参演的电影字典:{}".format(actor_dict))
```
这段代码的功能是读取一个 Excel 文件,将演员和电影之间的关系存储在一个字典中,最后按照演员名字的首字母排序输出。
相关问题
import openpyxl with openpyxl. Load_workbook(r'test.xlsx') as f1: print (f1)哪有问题
这段代码中缺少一个关键字 `try`,因为在使用 `with` 语句时,需要使用 `try...finally` 来确保文件在使用完后被正确关闭,否则会导致资源泄露。正确的代码应该是:
```
import openpyxl
try:
with openpyxl.load_workbook(r'test.xlsx') as f1:
print(f1)
except Exception as e:
print(e)
```
from openpyxl import Workbook wb = Workbook() list=[X_test, y_pred] wb4 = wb.create_sheet(list,index=0) wb.save(filename=r'D:\预测结果.xlsx')
这段代码的作用是使用 openpyxl 库创建一个 Excel 文件,将 X_test 和 y_pred 两个列表放在一个名为“Sheet1”的工作表中,并将该工作表插入到工作簿的第一个位置。最后将工作簿保存至本地文件路径 “D:\预测结果.xlsx”。
需要注意的是,列表 list=[X_test, y_pred] 在这里不需要使用,可以直接将 X_test 和 y_pred 作为参数传递给 create_sheet() 方法:
```python
from openpyxl import Workbook
# 创建工作簿
wb = Workbook()
# 在第一个位置创建一个名为“Sheet1”的工作表,将 X_test 和 y_pred 列表填充到工作表中
ws = wb.create_sheet('Sheet1', 0)
for row in zip(X_test, y_pred):
ws.append(row)
# 保存工作簿至本地文件路径
wb.save(filename=r'D:\预测结果.xlsx')
```
这样代码会更简洁易读。