没有撇号的词典单词列表

时间:2012-11-17 16:54:28

标签: python list dictionary

我正在寻找一个只包含没有撇号的单词的字典文件。我好像找不到一个!有谁知道我在哪里可以找到一个,如果不知道如何使用Python从文件中消除这些词?

3 个答案:

答案 0 :(得分:1)

要检查字符串或列表中是否有任何字符,您可以使用' in'以下方式:

words = ["it's", "my", "world"]
filtered = [x for x in words if "'" not in x]
>>> ["my", "world"]

或者相同但没有第一个中使用的列表理解:

filtered = []
for x in words:
    if "'" not in x:
        filtered.append(x)

如果您有字典,其中键是您需要过滤的字词:

newDict = {}
for k,v in wordsDict.iteritems():
    if "'" not in k:
        newDict[k] = v

答案 1 :(得分:1)

在Linux上:

使用grep过滤掉words文件中包含撇号的任何单词并保存到主目录中的mywords.txt的好方法。

grep "^[^']*$" /usr/share/dict/words > ~/mywords.txt

无需安装,下载或编写任何代码!


在OS X上:

更简单,因为/usr/share/dict/words已经没有包含撇号的单词。

答案 2 :(得分:0)

使用内置函数filter()

filter(lambda x:"'" not in x,my_list)

示例:

In [19]: my_list=['foo', "bar's", "don't","bar"]

In [20]: filter(lambda x:"'" not in x,my_list)
Out[20]: ['foo', 'bar']

来自文档:

filter(function or None, sequence) -> list, tuple, or string
  

返回函数(item)为true的序列项。如果   function为None,返回true的项。如果序列是a   元组或字符串,返回相同的类型,否则返回一个列表。