我的一个朋友正在谈论她喜欢玩的文字游戏,你试图通过一次切换一个字母来将一个单词转换成另一个单词(它们具有相同数量的字母),其中每个迭代产生一个真实的单词
示例:
MOON - > WOLF
GOON
穿帮
GOLF
WOLF
我认为编写一个程序来生成解决方案是一个有趣的小项目,并且在给出2个单词的情况下更进一步,确定解决方案是否存在以及最佳解决方案中的迭代次数。
问题是我无法找到可以通过编程方式轻松访问的免费单词列表。我也在考虑用这个作为学习Python的借口,所以如果有人知道免费的单词列表以及如何从Python解析和访问它的指针就会很棒。用于确定如何找到我自己的最佳路径的算法。
答案 0 :(得分:61)
选项:
#4
是我自己Python experiment用于文字游戏的版本,而且效果很好。
对于奖励积分,这里有一些东西让你开始你的单词程序:
import re
startwith = "MOON"
endwith = "GOLF"
cklength = re.compile('.{' + str(len(startwith)) + '}(\n)?$', re.I)
filename = "C:/dict.txt"
words = set(x.strip().upper() for x in open(filename) if x.match(cklength))
单词将是字典中所有4个字母单词的集合。你可以从那里做你的逻辑。
答案 1 :(得分:23)
大多数unix(包括osx)都有一个文件/usr/share/dict/words
。
答案 2 :(得分:6)
你可以找到一个2.2mb的英文单词列表here。
您可以使用file i/o functions。
访问它们答案 3 :(得分:5)
如果你有权访问linux安装,那么
中应该有一些单词列表/usr/share/dict/
答案 4 :(得分:3)
答案 5 :(得分:1)
对于类似的东西,我使用了mozilla English dictionary。 它是一个zip文件(即使它有另一个扩展名)。在里面你会找到en-GB.dic这是字典。
答案 6 :(得分:1)
我遇到了同样的问题,并且在挖掘基于拼字游戏的网站时,我发现了一些文本格式很好的单词列表。他们的英文版本为https://www.wordgamedictionary.com/english-word-list/