Python 字典中不带撇号的单词列表

Python 字典中不带撇号的单词列表,python,list,dictionary,Python,List,Dictionary,我正在寻找一个只包含没有撇号的单词的字典文件。我好像找不到!有人知道我在哪里可以找到一个字符吗?如果没有,我如何使用Python从文件中删除这些单词?要检查字符串或列表中是否有任何字符,您可以通过以下方式使用“in”: words = ["it's", "my", "world"] filtered = [x for x in words if "'" not in x] >>> ["my", "world"] 或与第一个相同但没有列表理解的: filtered = [] f

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

要检查字符串或列表中是否有任何字符,您可以通过以下方式使用“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

在Linux上:

使用
grep
过滤
words
文件中包含撇号的任何单词,并保存到主目录中的
mywords.txt
是一种不错的方法

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

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


在OS X上:

更简单的是,
/usr/share/dict/words
中已经没有带撇号的单词了

使用内置功能:

例如:

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
返回函数(项)为true的序列项。如果 函数为无,返回为真的项。如果序列是 元组或字符串,返回相同类型,否则返回列表


给我们输入和输出的样品output@ArtsiomRudzenka示例输入:一个字典文件。示例输出:一个字典文件减去包含撇号的单词。将该字典发布到问题正文中?我理解问题的方式是OP需要一个包含没有撇号的单词的字典,如果没有,他如何使用python处理带有撇号的字典。我没想到他说的是
python字典/list
。请你澄清一下你的意思。@sudo_o这正是我想要的。我只是从字典里下载了一个简单的.txt单词列表,准确地说是150000,为了我的目的,我需要删除所有带撇号的单词。我怎么能这么做呢?我对这件事很陌生,所以我不知道该怎么办。顺便说一下,我正在使用Mac。在Mac上的
Utilities>terminal
中找到一个
terminal
,然后复制并粘贴
grep“^[^']*$”/usr/share/dict/words>~/mywords.txt
,这将在您的主目录中创建一个名为
mywords.txt
的新文件。>>grep“^[^']*$”/usr/share/dict/words>~/mywords.txt“”,第1行grep“^[^']*$“/usr/share/dict/words>~/mywords.txt^SyntaxError:无效语法>>>好的,所以我登录到mac电脑,查看文件
/usr/share/dict/words
,默认情况下没有包含
”的单词。字数大约为250000,因此您似乎一直都有您想要的文件:)而且,一旦返回,它们周围就有引号。@user1832195您不能在问题正文中发布一个小的文件片段以及预期的输出吗?这将使问题更加清楚。
filter(function or None, sequence) -> list, tuple, or string