長いリスト内の要素を交換パイソン

チョップ:

私は、タグとはるかに大きいリスト(3万個の要素)から(40K前後)の要素の数を交換しようとしています。作品次のコードは、しかし、それは非常に遅いです。

def UNKWords(words):
    words = Counter(words)
    wordsToBeReplaced = []
    for key, value in words.items():
        if(value == 1):
            wordsToBeReplaced.append(key)
    return wordsToBeReplaced

wordsToBeReplaced = UNKWords(trainingWords)

replacedWordsList = ["<UNK>" if word in wordsToBeReplaced else word for word in trainingWords]

このような大規模なリスト内の要素を交換するより効率的な方法はありますか?

blhsing:

あなたは作ることができますwordsToBeReplaced検索は平均ではなく、線形時に一定の時間で行うことができるので、代わりにセットを:

def UNKWords(words):
    return {word for word, count in Counter(words).items() if count == 1}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=25861&siteId=1