美文网首页
python快速检索字典

python快速检索字典

作者: 亦是旅人呐 | 来源:发表于2022-04-06 10:48 被阅读0次

    当需要匹配处理两个文件时,且文件的行数较大,嵌套循环是非常低效的办法,可以将其中一个文件转换成字典(前提是内存足够),然后循环检索字典。

    # 编写函数传入文件句柄,将需要的信息构建成键值对
    #(这里只需要键的信息,后续不需要用到值(固定为1),如需要,相应赋值即可)
    value = 1
    def pro_dict(file_handle):
        arr_info = []
        dict_name = {}
        for line in file_handle:
            line = line.strip()
            arr_info = line.split("\t")
            merge_to_key = arr_info[0]
            dict_name[merge_to_key] = value
        return dict_name
    
    file_handle_dict = pro_dict(file_handle1)
    
    for line in file_handle2:
        arr_info = []
        line = line.strip()
        arr_info = line.split("\t")
        file_handle2_search = arr_info[0]
        # if(file_handle2_search in file_handle_dict.keys()): 
        if(file_handle2_key in file_handle_dict):
            # 这里再进行其它操作
            pass
    
    如果使用了“file_handle2_search in file_handle_dict.keys()”语句,将会看到运行速度奇慢,比如10,000,000行的文件,循环检索300,000长度的字典,超过24小时,如果使用“file_handle2_search in file_handle_dict”,5分钟左右完成。

    另外最好不要频繁写入文件。

    相关文章

      网友评论

          本文标题:python快速检索字典

          本文链接:https://www.haomeiwen.com/subject/xwfzoltx.html