lvxinzhi 发表于 2013-10-20 10:33

怎样在列表中快速模糊查找自己需要的结果集

有以下这样一下list,list大小大约在8W左右,请问用什么方法可以快速模糊查找到自己需要的结果


DATA=(('AE','42或43',"按扭式喷雾器瓶","Aerosol"),
('AM','31',"未加保护玻璃瓶","Ampoule, non-protected"),
('AP','31',"加保护玻璃瓶","Ampoule, protected"),
('AT','42或43',"喷雾器","Atomizer"),
('BA','44或45',"桶","Barrel"),
('BB','91',"细绳","Bobbin")
……
)

sunny7476 发表于 2013-10-20 11:58

问题是,你需要的结果是什么样的?

laike9m 发表于 2013-10-20 12:02

可能需要索引吧,感觉这主要不是python的问题了。。

lvxinzhi 发表于 2013-10-20 17:59

本帖最后由 lvxinzhi 于 2013-10-20 18:01 编辑

sunny7476 发表于 2013-10-20 11:58 static/image/common/back.gif
问题是,你需要的结果是什么样的?

如果输入A则查出的结果集为以下
('AE','42或43',"按扭式喷雾器瓶","Aerosol"),
('AM','31',"未加保护玻璃瓶","Ampoule, non-protected"),
('AP','31',"加保护玻璃瓶","Ampoule, protected"),
('AT','42或43',"喷雾器","Atomizer"),
('BA','44或45',"桶","Barrel"),
输入31,则返回
('AM','31',"未加保护玻璃瓶","Ampoule, non-protected"),
('AP','31',"加保护玻璃瓶","Ampoule, protected"),
输入1则返回
('AM','31',"未加保护玻璃瓶","Ampoule, non-protected"),
('AP','31',"加保护玻璃瓶","Ampoule, protected"),
('BB','91',"细绳","Bobbin")
输入BB,则返回
('BB','91',"细绳","Bobbin")

我现在用For循环,发现遍历十W条数据,目前可以接受

lvxinzhi 发表于 2013-10-20 18:03

回复 3# laike9m

现在的数据,并没有放在数据库中


   

一棵菠菜 发表于 2013-10-21 15:44

首先,你这个数据要整理下,DATA是个大的元组,里面有分了很多小元组DATA就是第1个元组,len(DATA)有多少个元组,len(DATA)第1个元组有多少数据,采用循环的方式可以实现你的需求

lvxinzhi 发表于 2013-10-22 14:22

回复 6# 一棵菠菜

谢谢,感觉这样的需求,可能放在数据库中比较合理一些


   
页: [1]
查看完整版本: 怎样在列表中快速模糊查找自己需要的结果集