如何在Jupyter Notebook中导入.py/.ipynb文件的列表用于Hangman游戏开发
Jupyter Notebook导入外部单词列表的实现方法
从.py文件导入
这是最简单的导入方式,操作要求如下:
- 确保存储
wordlist的words2.py文件和当前运行的笔记本放在同一文件夹下,words2.py内的列表定义格式示例:
# words2.py 内容示例 wordlist = ["apple", "banana", "program", "hangman", "python"]
- 直接在当前笔记本运行导入语句即可,和普通Python导入逻辑完全一致:
from words2 import wordlist
如果words2.py不在当前工作目录,可以先把对应路径加入系统路径再导入:
import sys # 替换为words2.py所在文件夹的绝对路径 sys.path.append("/Users/xxx/documents/hangman/") from words2 import wordlist
从.ipynb笔记本文件导入
你代码里用到的nbimporter库就是专门用来实现笔记本互相导入的,按以下步骤操作即可:
- 先安装
nbimporter依赖,在单元格执行:
!pip install nbimporter
- 确保存储
wordlist的words2.ipynb已经保存,且定义wordlist的单元格已经成功运行过,文件放在当前笔记本的同目录下 - 执行你写的导入代码即可:
import nbimporter from words2 import wordlist
如果导入报错,可以执行以下代码打印当前工作目录,确认words2.ipynb是否放在对应路径下:
import os print(os.getcwd())
现有代码优化建议
你当前写的get_valid_word逻辑是可用的,不过如果单词列表很大的话,反复随机重试效率较低,可以提前过滤所有合法词,优化后代码如下:
import random import string import nbimporter from words2 import wordlist # 提前过滤所有不带空格、破折号的合法单词,统一转大写 valid_word_list = [word.upper() for word in wordlist if '-' not in word and ' ' not in word] def get_valid_word(valid_word_list): # 直接从预过滤的合法列表里随机选,不需要重复校验 return random.choice(valid_word_list)
内容的提问来源于stack exchange,提问作者DeAndre Horton
相关产品推荐
相关产品推荐

