Python 以编程方式使用的自由单词列表?

Python 以编程方式使用的自由单词列表?,python,dictionary,Python,Dictionary,我的一个朋友在谈论一个她喜欢玩的文字游戏,你试着通过一次切换一个字母来将一个单词转换成另一个单词(它们的字母数相同),每次迭代都会生成一个真实的单词 例如: 月亮-->狼 傻瓜 GOOF 高尔夫 狼 我觉得写一个程序来生成解决方案会是一个有趣的小项目,再进一步,给出两个单词,确定一个解决方案是否存在,以及最优解决方案中的迭代次数 问题是我很难找到可以通过编程轻松访问的免费单词列表。我也在考虑用这个作为学习Python的借口,所以如果有人知道免费的单词列表和如何从Python解析和访问它的指针,那

我的一个朋友在谈论一个她喜欢玩的文字游戏,你试着通过一次切换一个字母来将一个单词转换成另一个单词(它们的字母数相同),每次迭代都会生成一个真实的单词

例如:

月亮-->狼
傻瓜
GOOF
高尔夫

我觉得写一个程序来生成解决方案会是一个有趣的小项目,再进一步,给出两个单词,确定一个解决方案是否存在,以及最优解决方案中的迭代次数


问题是我很难找到可以通过编程轻松访问的免费单词列表。我也在考虑用这个作为学习Python的借口,所以如果有人知道免费的单词列表和如何从Python解析和访问它的指针,那就太好了。计算如何找到最佳路径的算法我将自己解决。

你可以找到一个2.2mb的英语单词列表

您可以使用。

选项访问它们:

  • 在常见或花园式Unix安装中查找/usr/share/dict/words
  • (单击文件“Word”的“修订”标记)
  • #4
    是我自己在文字游戏中使用的一款,它运行得很好

    为了获得额外积分,这里有一些东西可以帮助您开始您的word程序:

    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个字母单词的集合。您可以从那里执行您的逻辑。

    大多数unix(包括osx)都有一个文件
    /usr/share/dict/words

    如果您可以访问linux安装,那么其中应该有一些单词列表

    /usr/share/dict/
    

    对于类似的事情,我使用了英语词典。找到您想要的英文变体,例如,右键单击save to(添加到Firefox)按钮。您得到的文件是XPI类型,但它实际上是一个伪装的ZIP文件。在里面你可以找到
    en GB.dic
    ,这是字典的内容

    字典目录内:


    请查看中的数据库。这些实际上是字典数据库,因此您需要自己提取单词定义。你可以从开始。

    我也遇到了同样的问题,通过对一个基于拼字游戏的网站的深入研究,我发现他们的一些单词列表采用了很好的文本格式。他们在

    上有英文版本,你检查过这个列表吗?我看到了一些对我来说不太合适的词:“tween,100001760s,1st_Earl_Baldwin_of_Bewdley,365_days,5-羟基-3-甲基戊二酰辅酶A_还原酶,等等……freebsd已经切换到Subversion进行源代码控制,这样链接就不再有效了——这里是选项1的更新链接,我如何获得它作为列表。(我是打开并解析还是有更快的方法?)您提供的链接不再受支持。我现在编辑了答案,以便使用当前网站和更好的说明。