我试图用标签替换更大列表(300万个元素)中的许多元素(大约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]
在这么大的列表中,有没有更有效的方法来替换元素?
最佳答案
您可以改为设置wordsToBeReplaced
,以便平均可以在恒定时间而不是线性时间进行查找:
def UNKWords(words):
return {word for word, count in Counter(words).items() if count == 1}
关于python - 替换长列表Python中的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60531940/