在Python

时间:2015-04-22 10:34:44

标签: python dictionary

好的,我已经浏览了一下,但由于“词典”这个词在Python中已经有了意义,所以我很挣扎。我指的是牛津(或其他)英语词典。

我有一个单词的数组(列表)。我想循环它们并检查每个是否在英语词典中。如果是,我想将变量增加1.

除了“让Python读取字典”之外,这一切都非常简单,我不确定。我找到了一个我可以使用的.txt词典,但是那里的词语定义使得无法挑选出实际的词汇。

关于如何实现这一目标的任何想法?

2 个答案:

答案 0 :(得分:1)

  

我有一个单词的数组(列表)。我想循环它们并检查每个是否在英语词典中。如果是,我想将变量增加1。

如果我理解正确,你可以这样做:

wordlist = ["foo", "bar", .....]
dictionary = …
words_in_dictionary = len([word for word in wordlist if word in dictionary])
  

除了“让Python读取字典”之外,这一切都非常简单,我不确定。我找到了一个我可以使用的.txt词典,但是那里的词语定义使得无法挑选出实际的词汇。

您可以使用以下方法获取更好的词典(等等unix'/usr/share/dict/words),或者从字典中删除字词。 re。如果您发布该词典的一部分,我可以帮助您。

答案 1 :(得分:1)

您已选择合适的文件来制作单词列表,您可以使用defaultdict来跟踪列表中的单词是否出现在英语词典中。

from collections import defaultdict

words = ['foo', 'bar', 'baz']
wordlist = open('linuxwords.txt').read().splitlines()
d = defaultdict(bool)
for word in words:
    d[word] = word in wordlist

for word in d:
    print "Does the word '{0}' appear in the English dictionary: {1}".format(word, "yes" if d[word] else "no")

结果:

Does the word 'baz' appear in the English dictionary: no
Does the word 'foo' appear in the English dictionary: no
Does the word 'bar' appear in the English dictionary: yes