0

アポストロフィのない単語のみを含む辞書ファイルを探しています。見つからないようです!Pythonを使用してファイルからそれらの単語を削除するにはどうすればよいですか?

4

3 に答える 3

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
于 2012-11-17T16:58:27.567 に答える
1

Linuxの場合:

grepファイル内のアポストロフィを含む単語を除外してホームディレクトリにwords保存するために使用する優れた方法。mywords.txt

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

コードをインストール、ダウンロード、または作成する必要はありません。


OS Xの場合:

/usr/share/dict/wordsすでにアポストロフィが含まれている単語が含まれていないため 、さらに簡単です。

于 2012-11-17T16:58:48.897 に答える
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

function(item)がtrueであるシーケンスのアイテムを返します。関数がNoneの場合、trueの項目を返します。シーケンスがタプルまたは文字列の場合は同じタイプを返し、そうでない場合はリストを返します。

于 2012-11-17T16:59:00.427 に答える