単語リストがあります。かなり大きいです (len(list) ~ 70,000)。私は現在このコードを使用しています:
replacement = "bla"
for word in data:
if (word in unique_words):
word = replacement
このコードは、操作の実行に時間がかかります。これを行うより速い方法はありますか?
単語リストがあります。かなり大きいです (len(list) ~ 70,000)。私は現在このコードを使用しています:
replacement = "bla"
for word in data:
if (word in unique_words):
word = replacement
このコードは、操作の実行に時間がかかります。これを行うより速い方法はありますか?
set
に aを使用しunique_words
ます。セットは、アイテムがリストに含まれているかどうかを判断するのにリストよりもかなり高速です ( Python セットとリストを参照してください)。
また、これは文体の問題にすぎませんが、if
. よりきれいに見えます。
あなたが投稿したコードは、実際には置き換えを行いません。以下はスニペットです。
for key,word in enumerate(data):
if word in unique_words:
data[key] = replacement
よりコンパクトな方法は次のとおりです。
new_list = [replacement if word in unique_words else word for word in big_list]
unique_words
変数の用途を考えると変な名前だと思いますが、おそらくそうあるべきsearch_list
でしょうか?
編集:
あなたのコメントの後、おそらくこれはより良いです:
from collections import Counter
c = Counter(data)
only_once = [k for k,v in c.iteritems() if v == 1]
# Now replace all occurances of these words with something else
for k, v in enumerate(data):
if v in only_once:
data[k] = replacement