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

Python 3.x 从.txt文件形成单词列表的最快方法,python-3.x,performance,list,file,optimization,Python 3.x,Performance,List,File,Optimization,我正在做一个基于单词列表的在线词典的网络抓取。下面是.txt文件中单词列表的一部分:…泄露、无意、泛述、严厉、大杂烩 我开发了一个代码,它可以完美地工作,但是当单词列表变长时,它的运行速度会变慢。在我的例子中,单词列表大约有3000个单词,代码将对每个单词进行刮取。我的代码如下所示: file = open('word_list.txt', 'r') search_list = file.read().split(',') file.close() for x in tqdm(range(i

我正在做一个基于单词列表的在线词典的网络抓取。下面是.txt文件中单词列表的一部分:…泄露、无意、泛述、严厉、大杂烩

我开发了一个代码,它可以完美地工作,但是当单词列表变长时,它的运行速度会变慢。在我的例子中,单词列表大约有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 scraping...)

    # (pandas organizes dataframe into .csv)
print ('Done!')

看起来第一步要花很多时间。有什么方法可以加快整个过程吗?

我可能会尝试以下方法:

编写一个简单的程序将搜索列表转换成字典

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,…})打印出整个单词列表。将此dict复制并粘贴到新文件或硬代码中(如果您希望以这种方式维护它,而不是每次启动时都运行此命令)。节省内存空间,而且速度更快,因为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!')
因此,您得到的是一个dict,而不是一个支持随机访问的列表。我认为这应该在O(1)中起作用


看一看。您是否衡量了您在哪里花费的大部分时间?请尝试通过探查器运行代码,以查看哪一行占用的时间最长。我个人使用python。再看看Penzieher提供的链接——我也打算提出同样的建议。