python-list (列表)和 dict (字典)的查询速度比较

通过列表的形式进行文本关键词检索,进行博彩类预测,查看程序时间: 

import jieba
import pandas as pd
import numpy as np
import os
from collections import Counter 
from time import *

root_dir = os.path.realpath(__file__ + "/..")
betting_keys = []
betting_path = root_dir + "/betting_keys.csv"
betting_df = pd.read_csv(betting_path)
######################## 列表形式#####################
betting_keys = np.array(betting_df['关键词']).tolist()  

def predict_betting(title, content, search_keys=''):
    count = 0
    text = title + content + search_keys
    words = jieba.lcut(text.strip())
    for i in words:
        ############列表的检索################
        if i in betting_keys :
            count += 1
    if count > 1:
        return 'True'
    else:
        return 'False'

if __name__ == '__main__':
    begin_time = time()
    print(predict_betting('超级网络"赌局" 赌金每天约5000万',
                          '小王在过去一个半月的时间里,每天做的事情就是用手机玩德州扑克赌博游戏,每天赌博的时间至少是8个小时,几乎从睡醒后就开始上网赌博。他说:“没办法,上瘾了,睁眼开始就想赌,想赢钱。”'))
    
    end_time = time()
    run_time = end_time-begin_time
    print(run_time)

结果为:

修改两个地方:

##############关键词形式为字典############
betting_keys = np.array(betting_df['关键词']).tolist()  # 赌博类关键词
betting_keys_dict=dict(Counter(betting_keys))

###############字典检索##################
if i in betting_keys_dict:

查看结果:

虽然相差不多,但是却有提升,和数据的大小有关,数据越大,越能看出差距。

你可能感兴趣的:(python,list,(列表),dict,(字典),查询速度,python)