我在python中制作单词词汇时遇到问题。我的代码遍历大约2.3MB的文档中的每个单词并检查该单词是否在字典中,如果不是,则附加到列表中
问题是,它已经取消了很长时间(我还没有完成它)。我该如何解决这个问题?
代码:
words = [("_", "hello"), ("hello", "world"), ("world", "."), (".", "_")] # List of a ton of tuples of words
vocab = []
for w in words:
if not w in vocab:
vocab.append(w)
答案 0 :(得分:4)
除非您需要vocab
才能获得特定订单,否则您可以执行以下操作:
vocab = set(words)
答案 1 :(得分:1)
以下是比较for循环和set()
的执行时间的测试:
import random
import time
import string
words = [''.join(random.sample(string.letters, 5)) for i in range(1000)]*10 # *10 to make duplicates!
vocab1 = []
t1 = time.time()
for w in words:
if w not in vocab1:
vocab1.append(w)
t2 = time.time()
t3 = time.time()
vocab2 = set(words)
t4 = time.time()
print t2 - t1
print t4 - t3
<强>输出:强>
0.0880000591278 # Using for loop
0.000999927520752 # Using set()