我正在寻找一个只包含没有撇号的单词的字典文件。我好像找不到一个!有谁知道我在哪里可以找到一个,如果不知道如何使用Python从文件中消除这些词?
答案 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 元组或字符串,返回相同的类型,否则返回一个列表。