Python搜索: how to do it efficiently

标签 python

我有一个类有 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/

相关文章:

python - python中的内存错误

python - 我怎么能实现 “HH:MM:SS” 格式

python - mmap 与 fileinput 的优点

python - 在 Python 中表示没有日期的时间的结构

python - 在django中显示列表第一个元素的属性

python - 在预定义的位置将一个列表中的值插入到另一个列表中

python - 在将混合类型的列值与 pandas Dataframe 中的 int 或 float 进行比较时跳过字符串值

python - Numpy 拆分多维数组

python - 如何通过训练参数减少gensim fasttext模型的RAM消耗?

python - 使用 itertools.groupby 性能进行 NumPy 分组