Python:从.txt文件形成单词列表的最快方法

时间:2018-06-29 05:38:57

标签: python-3.x performance list file optimization

我正在基于单词列表在网上抓取在线词典。这是 .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!')

第一步似乎需要很多时间。有什么办法可以加快整个过程吗?

1 个答案:

答案 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) 中起作用。