我有一个类有 2 个变量成员:
class A:
fullname = ""
email = ""
内存中存储了一个 A 列表,现在我需要搜索全名或电子邮件,搜索需要支持模糊搜索(组装 SQL 'like' 子句),例如)搜索“abc”,搜索“dabcd” "应该匹配(如果能先显示完全匹配就更好了)。
我认为我应该在“全名”和“电子邮件”上建立索引?
请推荐,谢谢!
编辑:如果我只需要完全匹配,以“fullname”和“email”为键的两个字典是否是最佳选择?我看到一些文章说抓取是O(1)。
第二次编辑:我定义的“最佳”是搜索速度(最佳速度)。我认为在 python 中,引用只会作为指针存储到字典中,因此空间分配不应该成为问题。我有数千条记录。
最佳答案
查看sqlite3
模块。您可以将数据放入内存数据库中,为其建立索引,然后使用标准 SQL 进行查询。
关于Python搜索: how to do it efficiently,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4611164/