我正在基于单词列表在网上抓取在线词典。这是 .txt 文件中单词列表的一部分:...沉溺,无意中,Panegyric,Draconian,Hodgepodge ...
我开发了一个代码,可以很好地工作,但是当单词列表变长时,它运行得很慢。在我的情况下,单词列表包含大约3000个单词,并且代码将对每个单词进行抓取。我的代码如下:
file = open('word_list.txt', 'r')
search_list = file.read().split(',')
file.close()
for x in tqdm(range(int(len(search_list)))):
search = search_list[x]
# (BeautifulSoup web scrapping...)
# (pandas organizes dataframe into .csv)
print ('Done!')
第一步似乎需要很多时间。有什么办法可以加快整个过程吗?
答案 0 :(得分:0)
我可能会尝试这样的事情:
编写一个简单的程序将 search_list 转换为字典。
file = open('word_list.txt', 'r')
search_list = file.read().split(',')
file.close()
search_dict = {}
for i in range(len(search_list)):
search_dict[i] = search_list[i]
print(search_dict)
这应该在控制台上以 dict 格式打印出整个单词列表,例如 {1: a, 2: an, ...}。将此字典复制并粘贴到新文件或硬代码中(如果您想以这种方式维护它而不是每次都在开始时运行它)。节省内存空间,速度更快,因为 dicts 中的单词不会改变,并且可以在以后随时更新。
for x in tqdm(range(int(len(search_dict)))):
search = search_dict.get(x)
# (BeautifulSoup web scraping...)
# (pandas organizes dataframe into .csv)
print ('Done!')
<块引用>
所以,你得到的是一个字典,而不是一个支持随机访问的列表。我认为这应该在 O(1) 中起作用。